Yorke York
Yorke York

Reputation: 58

Prevent MouseEnter Event After a MouseClick

I Have a PictureBox And I Use it as a button !

i have a code that when on MouseClick event the picture change ! but the MouseMove also have a different image , even when i click the MouseMove event execute and change the image back to unclicked !

my question is how can i prevent the MouseMove event and the picture is clicked so the picture don't get changed ?

here is my code

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

                }
     }

the events are created like this :

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

i get this error :

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

How can i pass the event e parameter as MouseEventArgs ?

Upvotes: 0

Views: 330

Answers (1)

Tanmay Nehete
Tanmay Nehete

Reputation: 2196

hi try this see how much it works use mouse move event

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

Hope this will help u

Upvotes: 1

Related Questions