防止鼠标单击后鼠标进入事件

本文关键字:鼠标 入事件 单击 | 更新日期: 2023-09-27 18:36:12

我有一个图片框,我把它当作一个按钮!

我有一个代码,当鼠标单击事件时,图片会发生变化!但是鼠标移动也有不同的图像,即使我单击鼠标移动事件执行并将图像更改回未单击!

我的问题是我如何防止 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 参数作为鼠标事件参数传递?

防止鼠标单击后鼠标进入事件

嗨,

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

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";
            }        
}

希望这对你有帮助