1.4k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
hallo liebe gemeinde!
ich arbeite mit c# und habe ein kleines problem und bitte euch um hilfe. es geht um folgendes: ich lassen zufallszahlen im sekundentakt in eine Listbox schreiben (funktioniert). wenn 5 zahlen in der Listbox stehen werden die in ein Array geschrieben und dann weiterverarbeitet (funktioniert). wie kann ich jetzt die nächsten 5 zahlen verarbeiten, in das Array schreiben, die ersten 5 aber in der Listbox stehen bleiben und immer so weiter? wenn ich die jeweils ersten 5 zahlen aus der Listbox löschen würde, würde es funktionieren, will ich aber nicht, da ich diese Zahlen später noch brauche. hat jemand eine gute idee? Danke!

4 Antworten

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo nice.sweet,

wenn ich Dich recht verstehe, möchtest Du also die Item Liste in der ListBox wachsen lassen. Dann musst Du den nächsten Eintrag in die Listbox einfügen mit

lstName_der_box.Items.Add(Neues_Element);

Damit wird die Liste der Items um Neues_Element erweitert, die bisherigen Einträge bleiben aber bestehen.

Gruß
computerschrat
0 Punkte
Beantwortet von
hallo computerschrat,
genau das macht meine zufallsfunktion selbständig, funktioniert auch. ich mein, wenn in der Listbox 5 Werte stehen, dann sollen die in ein Array kopiert und weiterverarbeitet werden (was auch schon funktioniert). da die zufalls zahlen aber weitergeschrieben werden, möchte ich dann die Werte 6 bis 10, dann 11 bis 15, dann 16 bis 20 usw. (also jeweils immer 5 Werte) ebenfalls weiterverarbeiten. wie kann ich nach den ersten 5 Werten auf die jeweils nächsten 5 Werte zugreifen? Alle Werte sollen aber in der Listbox stehen bleiben. So besser verständlich?
0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo nice.sweet,

lstName_der_box.Items.Add(Neues_Element);


hängst Du an die Items der Listbox ein weiteres dran. Die bereits vorhandenen Items bleiben erhalten und werden nicht gelöscht.

Möchtest Du vielleicht nach jeweils fünf neuen Items eine Auswertung starten und dabei die fünf neuesten Items verwenden?
Dann musst Du nach immer dann, wenn der Sekundentimer ein Ereignis ausgelöst hat und ein neues Item dazugekommen ist, mit

AnzahlItems = listName_der_box.items.count;


die Anzahl der Elemente in der Listbos abfragen. Wenn diese Zahl durch fünf teilbar ist, kannst Du die letzten fünf Elemente auswerten


if (AnzahlItems %5=0)
{
// hier ist die Anzahl durch 5 teilbar
for (i=AnzahlItems-5 ; i<=AnzahlItems ; i++)
{
// hier ist die Auswertung
Mach_was_mit ( listName_der_box.items[i])
}
}


Die ListBox behält die alten Werte, bis der Speicher platzt :-)

Gruß
computerschrat
0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
hier fehlte natürlich noch ein zweites Gleichheitszeichen


if (AnzahlItems %5==0)

und manches Semikolon am Zeilenende muss man auch noch dazukaufen ;-)

Gruß
computerschrat
...