Laden...

bekomme die Schleife nicht gebacken

Erstellt von t99pro vor 18 Jahren Letzter Beitrag vor 18 Jahren 869 Views
T
t99pro Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren
bekomme die Schleife nicht gebacken

Hi,
vieleicht kann mir ja mal jemand einen Denkanstoß geben bin noch Noob ...

Ich habe ein listView , dort will ich eine Aufzählung haben.
Jedesmal wenn ich zb. button1 klicke soll 1 da stehen klicke ich nochmal soll 2 da stehen usw.

Ich habe es mit einer Schleife probiert


private void Nr()
{
	for(int i = 1; i < 11; i++)
	{
		string id = Convert.ToString(i);
		ListViewItem lvi = new ListViewItem(id);
		listView1.Items.Add(lvi); 
	}
}

aber wenn ich die Schleife jetzt mit dem Button aufrufe schreibt er mir gleich alles von 1 -10 voll. Wenn ich ein break reinsetzte stoppt zwar die Schleife aber fängt bei erneutem klicken wieder bei 1 an.

Kann mir da bitte jemand weiterhelfen ?

P
939 Beiträge seit 2003
vor 18 Jahren

Eine Schleife wird dafür nicht gebraucht.

Wie du das Button.Click-Ereignis mit einer Methode verbindest, weisst du ja schon. Der Code in der Methode muss in etwa so aussehen:

// Ereignis-Handler, registriert bei allen Buttons.
private void HandleButtonClick(object sender, EventArgs e) {

   Button button = (Button)sender;
   Nr(button);
}

private void Nr(Button button) {

   // id abhängig vom geklickten Button festlegen.
   int id = -1;
   if(button == this.button1) {
      id = 1;
   } else if(button == this.button2) {
      id = 2;
   } else if(button == this.button3) {
      id = 3;
   }

   // ListViewItem hinzufügen.
   ListViewItem lvi = new ListViewItem(id.ToString());
   listView1.Items.Add(lvi); 
}

Gruss
Pulpapex

T
151 Beiträge seit 2005
vor 18 Jahren

hi,

dein Code funktioniert nicht, weil beim Button_Click Ereignis immer die gesamte Funktion audgefürt wird (also auch die ganze Schleife). Setzt du jetzt ein "break" in die Schleife wird sie ganz abgebrochen.

Du kannst das Problem lösen, indem du eine Zählvariable in der KLasse deklarierst und diese bei jeden klick auf den Button erhöhst und ausgibst.


class Test
{
    private byte counter = 1;
    ...
    private void Nr()
    {
        ListView1.Items.Add(new ListViewItem(counter)); //ListviewItem mit aktuellem Wert erstellen
        counter++; //counter hochzählen
    }
}

MfG ThePaul

T
t99pro Themenstarter:in
13 Beiträge seit 2005
vor 18 Jahren

Danke...werde mir das mal testen