Entwickler-Ecke

WinForms - Mehrere Comboboxen gleichzeitig einrichten (nicht ALLE)


Emorgaly - Fr 22.07.16 17:50
Titel: Mehrere Comboboxen gleichzeitig einrichten (nicht ALLE)
MOIN

ich hab da mal ein Problem das mir als wieder auftritt und alle meine versuche sind bisher gescheitert,
was daran liegen kann das ich änfänger bin und Trick 492 feichen nicht kenne

zb in diesem Projeckt habe ich 8 comboBoxen
von denen Combobox 1-4 und 5-8 je vollkommen gleich eingerichtet werden sollen

alle meine versuch es mit "foreach" und "if" zu führen entwerder dazu das ich unzählige Fehler bekomme
oder nur Combobox1 8mal zugeADDed wird und alle anderen Leer sind

gibt es nicht eine möglichkeit zu sagen:

C#-Quelltext
1:
comboBox(1-4).Items.Add("Konto");                    

oder

C#-Quelltext
1:
2:
Vary = (comboBox1 bis comboBox4) //wo Vary steht bei allen Comboboxen in () ausführen
Vary.Items.Add("Konto");



So mache ich das zurzeit das muss doch Kürzer gehen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
foreach (Control Vary in Controls) //wie lege ich eine zweite Variable fest
            {
                
                if (Vary is ComboBox)
                {
                    Vary.Text = "Bitte wählen";
                }
            }
            comboBox1.Items.Add("Konto");
            comboBox1.Items.Add("Bar");
            comboBox1.Items.Add("Konto zu Konto");
            comboBox1.Items.Add("Bar zu Konto");
            comboBox1.Items.Add("Konto zu Bar");
            comboBox1.Items.Add("Bar zu Sparen");
            comboBox1.Items.Add("Sparen zu Bar");

            comboBox2.Items.Add("Konto");
            comboBox2.Items.Add("Bar");
            comboBox2.Items.Add("Konto zu Konto");
            comboBox2.Items.Add("Bar zu Konto");
            comboBox2.Items.Add("Konto zu Bar");
            comboBox2.Items.Add("Bar zu Sparen");
            comboBox2.Items.Add("Sparen zu Bar");

            comboBox3.Items.Add("Konto");
            comboBox3.Items.Add("Bar");
            comboBox3.Items.Add("Konto zu Konto");
            comboBox3.Items.Add("Bar zu Konto");
            comboBox3.Items.Add("Konto zu Bar");
            comboBox3.Items.Add("Bar zu Sparen");
            comboBox3.Items.Add("Sparen zu Bar");

            comboBox4.Items.Add("Konto");
            comboBox4.Items.Add("Bar");
            comboBox4.Items.Add("Konto zu Konto");
            comboBox4.Items.Add("Bar zu Konto");
            comboBox4.Items.Add("Konto zu Bar");
            comboBox4.Items.Add("Bar zu Sparen");
            comboBox4.Items.Add("Sparen zu Bar");

            comboBox5.Items.Add("gebraucht");
            comboBox5.Items.Add("Luxus");

            comboBox6.Items.Add("gebraucht");
            comboBox6.Items.Add("Luxus");

            comboBox7.Items.Add("gebraucht");
            comboBox7.Items.Add("Luxus");

            comboBox8.Items.Add("gebraucht");
            comboBox8.Items.Add("Luxus");



Moderiert von user profile iconChristian S.: Topic aus Sonstiges (.NET) verschoben am Fr 22.07.2016 um 19:57


Delete - Fr 22.07.16 19:18

- Nachträglich durch die Entwickler-Ecke gelöscht -


Christian S. - Fr 22.07.16 19:55

Hallo,

Du kannst es auch so machen (habe ein paar ComboBoxen geschludert)

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
ComboBox[] comboSet1 = {comboBox1, comboBox2};
ComboBox[] comboSet2 = {comboBox3, comboBox4};

// Für alle
foreach(var cb in comboSet1.Concat(comboSet2))
  cb.Text = "Bitte wählen";

// Für erstes Set
foreach (var cb in comboSet1)
{
  cb.Items.Add("Konto");
  cb.Items.Add("Bar");
  cb.Items.Add("Konto zu Konto");
  cb.Items.Add("Bar zu Konto");
  cb.Items.Add("Konto zu Bar");
  cb.Items.Add("Bar zu Sparen");
  cb.Items.Add("Sparen zu Bar");
}

// Für zweites Set
foreach (var cb in comboSet2)
{
  cb.Items.Add("gebraucht");
  cb.Items.Add("Luxus");
}


Aber ich würde empfehlen, sprechendere Namen für Deine Komponenten zu nehmen, sonst weißt Du recht bald nicht mehr, wofür jetzt comboBox3 eigentlich noch war.

Grüße
Christian