Befehle mit for schleife verändern
-
Hallo,
ich benutze microsoft visual 2008 und programmiere eine windowsapplicationich habe 8 listboxen in denen werte von 1-100 stehen müssen. damit ich die nicht von hand eintragen muss möchte ich das gerne programmtechnisch machen.
mit listbox1.Items.Add("1")
füge ich ja werte hinzumit
for( int i = 1; i <101; i++)
{
listbox1.Items.add(i)
}kann ich ja eine box ausfüllen
aber gibt es ne möglichkeit mit einer weiteren for schleife auch die anderen listboxen gleichzeitig auszufüllen ?
also primitiv gesagt so :
[code="cs"]
for( int j = 1; j <9; j++)
{
for( int i = 1; i <101; i++)
{
listboxJ.Items.add(i)
}
}das es so nicht geht weiß ich aber gibt es eine möglichkeit nicht 8 forschleifen machen zu müssen ?
vieln dank
Truste
-
Mach doch einfach ein Array/List oder sowas.
Hier ein Beispiel (Pseudocode!):
Array<ListBox> listboxes = new Array<ListBox>(); listboxes.Add(Listbox1); listboxes.Add(Listbox2); // ... foreach (ListBox listbox in listboxes) for (int i = 0; i < 100; ++i) listbox.Items.Add(i + 1);
-
Danke für die Schnelle antwort
ich befürchte das meine schulkenntnisse für das nicht ausreichen
ich weiß das man mit
int [] NAME = new int [10];
ein Array erstellt mit 10 slots
kannst du mit die erste zeile erklären ?
ich weiß das "Listbox" eine classe ist
was macht der befehl genau also schritt für schritt.
und warum gibt mein visual einen fehler aus wenn ich es starten möchte
"Fehler 1 Typ "System.Array" ist nicht generisch und kann daher nicht mit Typargumenten verwendet werden. "
ich lerne gerade für meine abschlussprüfung und ich weiß das wir mehrere listboxen benutzen werden. Unser lehrer gibt gerne zusatzpunkte wenn man sachen kann die man im unterricht nicht gelernt hat
Truste
-
Ich hab ne lösung gefunden die auch ziemlich elegant aussieht wie ich finde
int j = 0; string[] Werte = new string[100]; for (int i = 1; i < 101; i++) { Werte[j] = i.ToString(); j++; } listBox2.Items.AddRange(Werte); listBox3.Items.AddRange(Werte); listBox4.Items.AddRange(Werte); listBox5.Items.AddRange(Werte); listBox6.Items.AddRange(Werte); listBox7.Items.AddRange(Werte); listBox8.Items.AddRange(Werte); listBox9.Items.AddRange(Werte);
danke nochmal
Truste
-
Hallo,
es muß
List<ListBox> listboxes = new List<ListBox>();
heißen (bezogen auf den Code mit Array<ListBox>).
Aber wenn ihr noch keine generischen Container gelernt habt, dann kannst du auch alternativListBox[] listboxes = new ListBox[10];
benutzen.
-
danke
das werd ich nachher mal ausprobieren ..jetzt hab ich noch ein weiteres problem und ich weiß da wir das schonmal gelößt hatten in der schule frage ist nur wie war das nochmal ...
ich muss arrys und variablen Global nutzen
bsp
private void button1_Click(object sender, EventArgs e) { test1 = 5; string test2[] = new string[10]; } private void button2_Click(object sender, EventArgs e) { messageBox.show(test1); }
ist nur ein beispiel
ich muss also arrays und variablen beim ersten button click erstellen und beim 2. ausgeben.irgendwas war da mit global .. aber genau weiß ichs nemmer
weiß das jmd ?
danke
Truste
-
hat sich erledigt ich hab die vriablen einfach schon im vorfeld erstellt dann gehts
danke trotzden
-
So?
ListBox[] listboxes = new ListBpx[8]; for(int i = 0; i < listboxes.Length; i++) { listboxes[i] = new ListBox(); for(int ii = 0; ii < 100; ii++) { listboxes[i].Add(ii); } } //vergiss das Controls.AddRange(listboxes); nicht