下面为一计时器处理方法,定时变换图片框中的图片:
  private void timer1_Tick(object sender, EventArgs e)
        {
            //如果当前显示的图片索引没有到最大值就继续增加
            if (index < imageList1.Images.Count - 1)  
            {
                index++;
            }
            else //否则从第一个图片开始显示,索引从0开始
            {
                index = 0;
            }
            //设置图片框显示的图片
            pictureBox1.Image = imageList1.Images[index];
        }        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
问题是:代码 if (index < imageList1.Images.Count - 1) 中为什么不是 index < imageList1.Images.Count 呢?,这样做似乎最后一个索引找不出来呀!
寻求大虾帮忙,在此谢过!!

解决方案 »

  1.   

    举个例子就明白了:假设有8张图片,如果你用index < imageList1.Images.Count ,那么当index=7时还成立,index会再次++变成8,而图片集合的最大索引是7,当是8时已经超出索引范围了,就会发生异常了。
      

  2.   

    imageList索引从0开发
    如Count 为5,index应为 0-4
      

  3.   

    但是index++等价于index+1呀,本次的结果还是求index的索引呀。再次++的时候已经不符合imageList1.Images.Count 的范围呀!这又怎么解释呢?