16. Oktober 200421 j 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?
18. Oktober 200421 j 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.
18. Oktober 200421 j 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.
18. Oktober 200421 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.