2016-02-25 163 views
0

我有一个PictureBox,并将它用作按钮!鼠标点击后防止鼠标输入事件

我有一个代码,当在MouseClick事件的图片变化! 但MouseMove也有不同的图像,即使当我点击MouseMove事件执行并将图像更改为未点击!

我的问题是我如何防止MouseMove事件和图片被点击,所以图片不会改变?

这里是我的代码

void Button_Mouse_Enter(object sender, MouseEventArgs e) 
     { 

       PictureBox _Button = (PictureBox)sender; 

       if (e.Button.Equals(MouseButtons.None)) 
       { 

        _Button.ImageLocation = @"PATH\Button_Hover.jpg"; 

       } 


      } 

void Button_Mouse_Click(object sender, MouseEventArgs e) 
     { 

       PictureBox _Button = (PictureBox)sender; 

       if (e.Button.Equals(MouseButtons.Left)) 
       { 

        _Button.MouseEnter -= Button_Mouse_Enter; 

        _Button.ImageLocation = @"PATH\Button_Click.jpg"; 

       } 
    } 

事件都是这样产生:

Button_Plan.MouseEnter += (sender,e) => Button_Mouse_Enter(sender,e); 
Button_Plan.MouseClick += (sender, e) => Button_Mouse_Click(sender, e); 

我得到这个错误:

Error 2 Argument 2: cannot convert from 'System.EventArgs' to 'System.Windows.Forms.MouseEventArgs' 

如何传递的事件e参数作为MouseEventArgs?

+2

这仅仅是错误的方式做到这一点,使用MouseEnter事件来代替。 –

+0

谢谢!仍然不工作,我更新了我的代码! –

回答

1

喜试试这个看它有多少工作 使用鼠标移动事件

void Button_Mouse_Move(object sender, EventArgs e) 
     { 
      if (e.Button.Equals(MouseButtons.None)) 
      { 
       _BPictureBox _Button = (PictureBox)sender; 
       _Button.ImageLocation = @"PATH\Button_Hover.jpg"; 
      } 
     } 

void Button_Mouse_Click(object sender, EventArgs e) 
{ 
     if (e.Button.Equals(MouseButtons.Left)) 
      { 
       _Button.MouseEnter -= Button_Mouse_Enter; 
       PictureBox _Button = (PictureBox)sender; 
       _Button.ImageLocation = @"PATH\Button_Click.jpg"; 
      }   
} 

希望这将帮助ü

+0

没有工作!我更新了我的代码! –

+0

严重错误你得到 –

+0

没有工作。我更新了错误代码 –