我想有一个循环,它将遍历列表的每个元素一次。 如果单击该按钮,则消息框仅显示列表的第一个元素。如果第二次单击,则显示下一个元素,依此类推...
我使用以下代码在User类private void中创建:
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在void之外初始化。
在窗口中代码呈现如下:
private void buttonRight_Click(object sender, RoutedEventArgs e)
{
u1.ClickNext();
}
我将不胜感激任何帮助。
答案 0 :(得分:1)
显然,需要更多的东西才能与你正在做的事情一起工作。但核心概念只是声明你的索引并在每次点击后添加1。如果索引大于列表长度,您需要添加一些错误处理。
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 :(得分:0)
将计数器初始化为字段
private int counter = 0;
然后点击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++;
}
说到最后一个元素,它将返回到开头(第一个元素)。
答案 2 :(得分:-1)
试试这个希望它的帮助
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++;
}