Entwickler-Ecke
WinForms - Combobox, CheckBox in Auflistung oder als Objekte definieren
ots_sharp - So 06.05.12 13:03
Titel: Combobox, CheckBox in Auflistung oder als Objekte definieren
Hallo,
in einer Maske habe ich verschiedene Objekte (Comboboxen, CheckBoxen) die ich gezielt ansprechen möchte. Diese Objekte möchte ich dann in mehreren Methoden verwenden. Dazu würde ich die Objekte in eine Methode schreiben und diese bei Bedarf aufrufen. Wie kann ich diese an eine Methode übergeben und wie kann ich diese Liste durchlaufen?
Ein Array funktioniert in diesem Fall nicht, da sich unterschiedliche Objekte befinden.
Bei VB können die Objekte als Object angesprochen werden. Gibt es das auch in C#?
C#-Quelltext
1:
| ComboBox[] BoxArray = new ComboBox[] { this.cbox1, this.cbox2}; |
Auflistung der Objekte
C#-Quelltext
1:
| this.cbox1, this.cbox2, this ckhbox1,…; |
Gruß Stefan
Th69 - So 06.05.12 13:33
Hallo,
alle GUI-Komponenten haben die Basisklasse
Control, so daß du also davon ein Array erzeugen kannst:
C#-Quelltext
1:
| Control[] controls = new Control[] { this.cbox1, this.cbox2, this.ckhbox1 }; |
Dies ist besser als
Object zu verwenden, da du dann schon auf die allgemeingültigen Eigenschaften wie Name, Text, Size etc. zugreifen kannst, ohne explizit 'casten' zu müssen.
ots_sharp - So 06.05.12 13:55
Vielen Dank für die Rückantwort. Und wie greife ich auch das SelectedItem einer ComboBox zu?
Th69 - So 06.05.12 14:56
Du meinst innerhalb der Controls-Schleife?
Zuerst überprüfen, ob es sich um eine ComboBox handelt, und dann darauf zugreifen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| foreach(Control control in controls) { ComboBox cb = control as ComboBox; if (cb != null) { object item = cb.SelectedItem; } } |
Brauchst du denn wirklich alle verschiedenen Controls in dem Array, denn so müßtest du jeden Control-Type einzeln überprüfen?
ots_sharp - So 06.05.12 15:00
Ja, ich möchte den Boxen den Index zuweisen und so die Boxen zur Laufzeit mit Werten einstellen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!