fjendel Geschrieben 16. Oktober 2004 Teilen Geschrieben 16. Oktober 2004 Hallo! Ich bin gerade dabei einen Formular-Designer zu entwickeln und benutze dazu ein panel, auf das ich einfach normale Controls binde. Diese Controls (z.B. PictureBox, Label, ...) bekommen dann ein spezielles Objekt, in dem Werte für das Formular stehen, als Tag (also label1.Tag = new FormPropertiesObject()). In diesem FormPropertiesObject möchte ich nun irgendwie auf das übergeordnete Objekt zugreifen (hier also die Listbox). Wie kann ich das umsetzen? P.S.: Ich möchte beim Erstellen des Labels das Label-Objekt nicht an das FormPropertiesObject übergeben... Um das ganze etwas klarer zu machen ein paar Code Beispiele: Was ich nicht möchte: Label label1 = new Label(); FormPropertiesObject frmProp1 = new FormPropertiesObject(label1); label1.Tag = frmProp1; sondern einfach nur: Label label1 = new Label(); label1.Tag = new FormPropertiesObject(); und innerhalb des FormPropertiesObject dann irgendwie via Label label1 = (Label) this.parent; Wie kann ich diese parent-Eigenschaft umsetzen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 18. Oktober 2004 Teilen Geschrieben 18. Oktober 2004 Hallo! Das geht nicht. Wenn Du von Deinem FormPropertiesObject auf andere Objekte zugreifen willst, mußt Du eine Referenz auf diese Objekte übergeben oder eine Referenz an geeigneter Stelle aufbewahren. Wie soll Diene Klasse auch sonst wissen, welches Label Objekt sie zugreifen soll? Du wirst also eine Referenz übergeben müssen. Du könntest es so lösen, indem Du das Label.Tag nicht als Variable sondern als Proprety implementierst und beim set Aufruf dieses Properties eine Referenz in das dazugehörige FormPropertiesObject einträgst. Es würde dann auf das hinauslaufen, was Du nur tippen möchtest, so wird aber trotzdem eine Referenz übegeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
fjendel Geschrieben 18. Oktober 2004 Autor Teilen Geschrieben 18. Oktober 2004 ja, aber dann müsste ich ja ein neues Control entwerfen welches System.Windows.Forms.Label implementiert. Da ich nicht nur ein Label verwende, sondern auch noch Panels und PictureBoxes, ist der Aufwand nicht gerechtfertigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 18. Oktober 2004 Teilen Geschrieben 18. Oktober 2004 Du mußt eine Referenz übermitteln - wie Du das machst ist egal. Ohne geht's nicht... Gut, anderer Vorschlag: Wenn Du Windows.Forms benutzt, kannst Du grundsätzlich auf die übergeordentetn Container eines Controls zugreifen (über die Parent Property). In diesem Parent (z.B. dem Form) kannst Du nun einen Verweis auf ein Objekt unterbringen, in dem die Daten, auf die zugegriffen werden sollen, untergebracht sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.