说我有一个清单:1 5 6 10
当我点击下一个并且显示的List项目已经是10 ..我想将用户带回1并且当我点击上一个时以相同的方式显示List项目已经是1 ..我想要将用户带回10 ..这是我尝试的但是我总是认为" i(contor)不能为负或大于List.Count" :
public int i = 0;
private void nextbutton_Click(object sender, EventArgs e)
{
++i;
if (sweaterclicked)
{
if(SweatersList.Count != 1)
if (i >= SweatersList.Count - 1)
{
i = 0;
pictureBox1.Image = SweatersList[i];
}
else pictureBox1.Image = SweatersList[i];
}
}
private void previousbutton_Click(object sender, EventArgs e)
{
--i;
if (sweaterclicked)
{
if (SweatersList.Count != 1)
{
if (i < 0)
{
i = SweatersList.Count;
pictureBox1.Image = SweatersList[i];
}
else pictureBox1.Image = SweatersList[i];
}
}
}
答案 0 :(得分:0)
C#中的数组或列表索引从零开始,因此最大的范围内索引比集合中项目的数量少。因此,SweatersList.Count
,因此i
超出范围:
i = SweatersList.Count;
pictureBox1.Image = SweatersList[i];
因此,当您想要从最后一个有效索引重新开始时,您需要从SweatersList.Count
中减去一个:
i = SweatersList.Count - 1;
我不知道为什么你在if (sweaterclicked)
区块之外递增和递减,但我认为你这样做了。