我在form里面放了三个pictureBox,一个imageList,imageList里面放了六张图片
 private void pictureBox1_MouseHover(object sender, EventArgs e)
        {
            pictureBox1.Image = imageList1.Images[1];
        }        private void pictureBox1_MouseLeave(object sender, EventArgs e)
        {
            pictureBox1.Image = imageList1.Images[0];
        }        private void pictureBox2_MouseHover(object sender, EventArgs e)
        {
            pictureBox2.Image = imageList1.Images[3];
        }        private void pictureBox2_MouseLeave(object sender, EventArgs e)
        {
            pictureBox2.Image = imageList1.Images[2];
        }        private void pictureBox3_MouseHover(object sender, EventArgs e)
        {
            pictureBox3.Image = imageList1.Images[5];
        }        private void pictureBox3_MouseLeave(object sender, EventArgs e)
        {
            pictureBox3.Image = imageList1.Images[4];
        }这样运行之后是可以实现鼠标拖动画面改变的效果,可是调试玩之后出错!

解决方案 »

  1.   

    index的长度为6
    pictureBox3.Image = imageList1.Images[5];
    和pictureBox3.Image = imageList1.Images[4];
    是一样的!!~~
    所以你用该用pictureBox的index的索引开取
      

  2.   

    确认你的imageList1有足够的图片
    确认没有其他操作或事件释放imageList1的资源
      

  3.   

    imageList里面放了六张图片,你显示看看imageList里面是不是有6张图片?MessageBox.show(imagelist1.Images.Count.ToString());
      

  4.   

    有六张图片,0,1,2,3,4,5,我亲手添上去的,这段代码运行时候不出错,一退出就弹出这样的错误,就是这三个pictureBox放在一个pannel里面,pannel的移动用Timer控制的,这个应该没多大关系吧?
      

  5.   

    你在其它地方是不是修改了imageList1对象,导致里面的图片变少了。
      

  6.   

    pictureBox3.Image = imageList1.Images[4];
    把这句去点后就没有问题 了。
    pictureBOx3有个click事件,里面是this.close();不知道是不是这个原因
      

  7.   

    vchg yf g ugu  ii  i ii gii gig i gigi i g ig