Entwickler-Ecke

C# - Die Sprache - Wie bezeichnet man die void mit InitializeComponent?


Christoph1972 - So 30.11.08 11:31
Titel: Wie bezeichnet man die void mit InitializeComponent?
Hallo zusammen,

eine etwas peinliche Frage, hab wohl irgendwo gepennt und kann die Antwort nicht auf die schnelle in meinem Einsteigerbuch finden. Aber ich bin lieber für einen Moment der Blödmann, als immer blöd zu bleiben :lol:


Also, wie bezeichnet man die Void, in der InitializeComponent(); aufgerufen wird?

Darf man in dieser Void, Events mit einer Schleife abonieren? Oder sollte ich das lieber erst im Load Event machen?



Gruß
Christoph


Greenberet - So 30.11.08 11:41

Meinst du den Konstruktor?


UGrohne - So 30.11.08 11:45

Sieht so aus. Du willst also in der Methode InitializeComponents() eigene Event-Registrierungen vornehmen? Davon würde ich Abstand nehmen, weil diese Methode von der IDE gepflegt wird und es u.U. zu Unstimmigkeiten kommen kann. Bastel Dir lieber eine eigene Methode dafür und rufe die nach InitializeComponents im Konstruktor auf. Dann kannst Du auch davon ausgehen, dass die Komponenten alle erzeugt sind und dann Deine Events registrieren.


JüTho - So 30.11.08 11:58

Ich stimme UGrohne weitgehend zu. Es ist aber völlig unproblematisch, nach dem Aufruf von InitializeComponents() weitere Maßnahmen direkt im Konstruktor zu erledigen. Du darfst z.B. weitere Controls manuell erstellen, Eigenschaften (z.B. Beschriftungen) festlegen oder ändern, EventHandler registrieren usw. Ob man das im Konstruktor erledigt, in einer eigenen Methode (wie UGrohne sagt) oder im FormLoad, hängt vom Umfang dieser Maßnahmen und ihrem inneren Zusammenhang ab und kann deshalb nicht allgemein beantwortet werden.

Du musst Dir aber bewusst sein: Änderungen in der Designer.cs sind nur in seltenen Ausnahmefällen zulässig, wenn Du viel Erfahrung hast und genau weißt, wie die Designer.cs aufgebaut ist (z.B. mit alphabetischer Reihenfolge der Eigenschaften), sodass der Designer damit fehlerfrei umgehen kann. (Beim nächsten Aufruf des Designers macht der sowieso daraus, was er für richtig hält.)

Jürgen


Christoph1972 - So 30.11.08 12:22

Ich habe schon vermutet das es der Konstruktor ist, war mir aber nicht sicher, da dieser in VB.Net mit Sub New beginnt. Aber gut, dann ist diese Frage somit beantwortet!

In der Methode InitializeComponents() möchte ich keine Events abonnieren, sondern im Konstruktor. Gut, dann mach ich das mal nach dem Aufruf InitializeComponets(), mit einer Schleife, das ist gerade bequemer.


Vielen Danke für eure Hilfe!!


Gruß
Christoph