循环显示前一个和下一个按钮

时间:2017-01-06 17:10:43

标签: c# winforms

说我有一个清单:1 5 6 10

当我点击下一个并且显示的List项目已经是10 ..我想将用户带回1并且当我点击上一个时以相同的方式显示List项目已经是1 ..我想要将用户带回10 ..这是我尝试的但是我总是认为" i(con​​tor)不能为负或大于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];
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

C#中的数组或列表索引从零开始,因此最大的范围内索引比集合中项目的数量少。因此,SweatersList.Count,因此i超出范围:

i = SweatersList.Count;
pictureBox1.Image = SweatersList[i];

因此,当您想要从最后一个有效索引重新开始时,您需要从SweatersList.Count中减去一个:

i = SweatersList.Count - 1;

我不知道为什么你在if (sweaterclicked)区块之外递增和递减,但我认为你这样做了。