Steuern der Reihenfolge wann in InitialzeComponent Eigenschaften gesetzt werden

22/08/2007 - 15:20 von Dennis Nusser | Report spam
Hallo,

ich schreibe gerade eine Komponente die die Position und Größe von
Steuerelementen eines Controls verwaltet.

Beispiel: in einem Form sind drei Label's

_____________ ______________
|A___________| |B_____________|
______________
|C_____________|

Wenn dass Label A seine Größe veràndert, weil zB der Text lànger wird,
sollen die Labels B und C jeweils korrekt ausgerichtet werden.

Die Komponente funktioniert. Ich habe nur das Problem, dass in
InitialzeComponent die Eigenschaften meiner Komponente vor Eigenschaft Size
des Controls gesetzt werden. Somit hat meine Komponente falsche
Informationen.
Bisher behelfe ich mir damit, dass im Load-Ereignis des Forms (oder
Controls) in dem meine Komponente enthalten ist ich alle Controls iteriere
und die Size-Eigenschaft korrigiere. Ich würde aber das Load Ereignis lieber
nicht verwenden.

Gibt es eine Möglichkeit (ein Attribute oder wie auch immer) in dem ich
meiner Komponente mitteilen kann, dass die Eigenschaften erst nach der
Zuweisung der Size-Eigenschaft des Controls erfolgen soll.

Ich hoffe ich habe mich einigermaßen verstàndlich ausgedrückt.
Danke für eure Hilfe

Dennis
 

Lesen sie die antworten

#1 Alexander Szigetvary
22/08/2007 - 22:17 | Warnen spam
Hi!
Die Komponente funktioniert. Ich habe nur das Problem, dass in
InitialzeComponent die Eigenschaften meiner Komponente vor Eigenschaft
Size des Controls gesetzt werden. Somit hat meine Komponente falsche
Informationen.



InitializeComponent() ist doch eine Prozedur wie jede andere. Ich denke es
liegt an der Reihenfolge der Anweisungen. Wenn du im Ereignishandler von
label.textchanged(..) etwas tust und nachher die size ànderst musst du doch
nur den Ereignishandler vor der Änderung der size hinzufügen.

Alex

Ähnliche fragen