Forum: PC-Programmierung c# Mehrere ComboBoxen per Schleife bearbeiten


von Reinhard #. (gruebler)


Angehängte Dateien:

Lesenswert?

Hallo zusammen und ein erfolgreiches neues Jahr

Ich schreibe ein C#-Programm, in dem der Bediener
in mehreren ComboBoxen Zahlen auswählen muss.
(Beispiel siehe Bild)

Zur Zeit hat jede Box ihren eignen Namen. Die Ab-
frage der Boxen ist daher umständlich:
1
Eing[0] = cmbEckeOben.SelectedItem.ToString();
2
Eing[1] = cmbLinksOben.SelectedItem.ToString();
3
eing[2] = cmbLinksUnten.SelectedItem.ToString();
4
//u.s.w.

Ich würde das nun lieber durch eine Schleife
wie folgt abfragen
1
for(i=0; i<9; i++)
2
   {
3
     Eing[i] = cmb[i].SelectedItem.ToString();
4
   }

Ich habe aber keine Möglichkeit gefunden,
Steuerelemente mit Indice-Feld zu platzieren.

Um Missverständnisse auszuschließen. Die
Boxen sollen nicht zur Laufzeit erzeugt werden.

Ich hoffe, ihr habt mein Problem verstanden.
Über Tipps würde ich mich freuen.

von Peter II (Gast)


Lesenswert?

Reinhard ## schrieb:
> Ich habe aber keine Möglichkeit gefunden,
> Steuerelemente mit Indice-Feld zu platzieren.

dann lege sich doch extra in ein Array rein.

Array.insert( cmbEckeOben )
Array.insert( cmbLinksOben )

von Stefan (Gast)


Lesenswert?

nimm den Index in den Namen und referenziere die CB's mit diesem.
oder iteriere über die childs des Fensters und teste ob das child passt.
Stefan

von Reinhard #. (gruebler)


Lesenswert?

Peter II schrieb:
> dann lege sich doch extra in ein Array rein.

Danke für den Tipp. Hätte ich auch selbst
drauf kommen müssen. Na ja, mir fehlt noch
ein wenig die Praxis.

Die Methode "insert" der Array-Klasse
kennt mein Visual C# Ver. 11 nicht.
(gibt es nur bei C++ ?)

Ich hab es jetzt so gelöst:
1
ComboBox[] AuswBox = new ComboBox[9]; //Ein Array um die Auswahl-ComboBoxen
2
                                      //beser zu handhaben.
3
4
5
//Die ComboBoxen dem Array AuswBox zuordnen
6
//Die Zuordnung erfolgt im Uhrzeigersinn
7
AuswBox[0] = cmbEo;  //CmoboBox Ecke oben
8
AuswBox[1] = cmbRo;  //CmoboBox Rechts oben
9
   //u.s.w
10
AuswBox[8] = cmbLo;  //CmoboBox Links oben
11
12
13
//Den Inhalt aller ComboBoxe löschen
14
for (i = 0; i < 9; i++)  AuswBox[i].Items.Clear();

von Peter II (Gast)


Lesenswert?

Reinhard ## schrieb:
> Die Methode "insert" der Array-Klasse
> kennt mein Visual C# Ver. 11 nicht

war nur als Beispiel gedacht. Ich glaube bei List gibt es ein insert. 
Das ist ein Array was die größe ändern kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.