2016-02-25 129 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

沒有工作。我更新了錯誤代碼 –