给位:
  
    我在picture中显示图片,想实现在picture控件里单击左右光标键时实现图片的上一幅和下一幅切换的功能。
没有找到与这功能配匹的触发事件。
    若有前辈知晓这个功能的实现,恳请交流。

解决方案 »

  1.   

    增加 pic 所在窗体的 KeyDown事件
      

  2.   

    可以自定义一个控件,里面放个picture控件,增加它的鼠标左键和右键事件,至于实现上一幅下一幅图片,搞个数组存放下图片,让后左键和右键对应图片代号一下~
      

  3.   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Right)
                {
                    if (ImgCount == imageList1.Images.Count - 1)
                        ImgCount = 0;
                    else
                        ImgCount++;
                }
                else if (e.KeyCode == Keys.Left)
                {
                    if (ImgCount == 0)
                        ImgCount = imageList1.Images.Count - 1;
                    else
                        ImgCount--;
                }
                pictureBox1.Image = imageList1.Images[ImgCount];
            }
      

  4.   

    觉得是不是用MOUSE_DOWN时间,然后判断是哪个按键按下啊
      

  5.   

    但是,picturebox中没有这个事件 。而且是光标的左右移动,不是鼠标的左右移动。
    我是VS2010.
      

  6.   

    我说增加 pic 所在的 窗体的 事件, 不是pic他自身的事件,  我就怕你看不懂我说的,连代码都贴出来了..还看不懂?
      

  7.   


    把窗体的KeyPreview属性设置为true,然后增加窗体的 KeyDown事件(代码同楼上)
    这里补充一点:如果仅希望pictureBox有焦点的情况下才执行操作,则可以在代码中加:
    if(pictureBox1.Focused==true)
    {
    ...
    }
      

  8.   

    别想,pic 基本得不到焦点。
      

  9.   


    KeyDown事件 你键盘事件!! 和鼠标有个毛关系, 笑~
      

  10.   

    有办法的,
    首先将你窗体的KeyPrevicw设为true。然后就去你窗体的KeyDown事件中写切图的代码
      

  11.   

    pic 基本得不到焦点,这要看你怎么写代码了。
    通过pic的MouseDown()事件设置:pic.Focus();
    通过重写ProcessDialogKey(),可以判断pic的焦点问题。
            protected override bool ProcessDialogKey(Keys keyData)
            {
                if (pictureBox1.Focused)
                {
                    switch (keyData)
                    {
                        case Keys.Left:
                        case Keys.Right:
                            MessageBox.Show("ddd"); 
                            break;
                    }
                    // 如果焦点在pictureBox上则不调用base.ProcessDialogKey(keyData)
                    return true; 
                }
                return base.ProcessDialogKey(keyData);
            }
      

  12.   

    打错字, 是,KeyDown 
     你别告诉我KeyDown 是鼠标事件?
      

  13.   

    还好,就按我说的办法干吧。
    通过pic的MouseDown()事件设置:pic.Focus();
    通过重写ProcessDialogKey(),可以判断pic的焦点问题。
      protected override bool ProcessDialogKey(Keys keyData)
      {
      if (pictureBox1.Focused)
      {
      switch (keyData)
      {
      case Keys.Left:
        MessageBox.Show("这里放置左移图片的方法");  
        break;
      case Keys.Right:
        MessageBox.Show("这里放置右移图片的方法");  
        break;
      }
      // 如果焦点在pictureBox上则不调用base.ProcessDialogKey(keyData)
      return true;  
      }
      return base.ProcessDialogKey(keyData);
      }
      

  14.   

    如果你不需要pic有焦点才移动图片,那么直接按3楼 的方法在窗体键盘事件处理好了,前提记得吧窗体的KeyPreview设为true