2017-09-05 1 views
0

Ich möchte eine Schleife haben, die einmal durch jedes Element der Liste gehen würde. Wenn auf die Schaltfläche geklickt wird, zeigt das Meldungsfeld nur das erste Element der Liste an. Wird zweites Mal angeklickt wird, zeigt es nächstes Element, und so weiter ...Liste: Anzeige eines Elements zur Zeit

ich mit diesem Code in der Benutzerklasse privaten void erstellt:

public void ClickNext() 
    { 
     List<int> test = new List<int>(); 
     test.Add(0); 
     test.Add(1); 
     test.Add(2); 
     int next = test[index + 1]; 
     MessageBox.Show(next.ToString()); 
    } 

int index außerhalb leer initialisiert.

Im Fenster der Code präsentiert sich wie folgt aus:

 private void buttonRight_Click(object sender, RoutedEventArgs e) 
    { 
     u1.ClickNext(); 
    } 

ich Hilfe zu schätzen wissen werden.

+0

Wie manipulierst du 'index'? –

+0

sieht aus wie Sie einen Zähler machen? –

+0

Nicht sehr klar, wonach Sie fragen. –

Antwort

0

initialisieren Zähler als Feld

private int counter = 0; 

und klicken BTN

public void ClickNext() 
{ 
    List<int> test = new List<int>(); 
     test.Add(0); 
     test.Add(1); 
     test.Add(2); 

     int msg = test[counter%list.Count]; 
     MessageBox.Show(msg.ToString()); 
     counter++; 
} 

Wenn es um die letzte Element kommt, wird es wieder gehen bis zum Anfang (erstes Element).

+0

danke für Hilfe! –

-1

Der einfachste Weg wäre 1 in der Click-Methode auf die Indexvariable hinzuzufügen und von der Frage, nehme ich an Indexvariable sowohl den Klick und Clicknext Methode verfügbar:

private void buttonRight_Click(object sender, RoutedEventArgs e) 
{ 
    index++; 
    u1.ClickNext(); 
} 
1

Offensichtlich viel mehr brauchen um damit zu arbeiten, was immer du tust. Aber das Kernkonzept besteht nur darin, Ihren Index zu deklarieren und nach jedem Klick 1 hinzuzufügen. Sie müssen eine Fehlerbehandlung hinzufügen, falls Ihr Index größer als die Listenlänge ist.

class Program 
    { 
     static void Main() 
     { 
      var test = new Clicker(); 
      test.ClickNext(); 
      test.ClickNext(); 
     } 
    } 

    class Clicker 
    { 
     public int Index { get; set; } 

     public void ClickNext() 
     { 
      var listStr = new List<string> 
      { 
       "item 1", 
       "item 2", 
       "item 3" 
      }; 
      var next = listStr[Index]; 
      Index++; 
      MessageBox.Show(next); 

     } 
    } 
-1

Versuchen Sie, diese Hoffnung seine hilft

var Index=0; 
    public void ClickNext() 
    { 
      List<int> test = new List<int>(); 
      for(int i=0;i<=2;i++) 
      { 
      test.Add(i); 
     //test.Add(0); 
     // test.Add(1); 
     // test.Add(2); 

      }  
      if(Index<=test.Last()) 
      { 
       MessageBox.Show(test[Index].ToString()); 
      } 
      else{ 
       MessageBox.Show("End"); 
      //reset Index 
      Index=0; 
      } 
    } 

    private void buttonRight_Click(object sender, RoutedEventArgs e) 
     { 

      u1.ClickNext(); 
      Index++; 
     } 
+0

kann jemand erklären für down vote? weil ich wirklich wissen will, was ich falsch gemacht habe und das verbessern. Danke –

Verwandte Themen