Reputation: 58
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
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