View Single Post
Old 06-24-2009   #1 (permalink)
Christian Treffler


 
 

Button Cotrol: Event, when mouse leaves button with mousebutten still down

Hi,

I wrote some code to add images to button controls (.Net 2.0, Visual
Studio 2005, C#). There are 4 images for 4 states: normal, mousebutton
down, mousenter, disabled.

So far everything works with only a small problem: If I click on the
button and drag the mouse pointer from the control with mouse button
still down, the MouseLeave event is not triggered. The button outline
goes back to the normal state, but the image changes back to normal only
after I release the mousebutton.
I can't fins an event which catches 'Leave control with mouse button
still down'.

Here's a piece of my code:

public static void AddHandler(Button btn)
{ \\ Assign the methods to the events
btn.MouseDown += new System.Windows.Forms.MouseEventHandler(BtnDown);
btn.MouseUp += new System.Windows.Forms.MouseEventHandler(BtnUp);
btn.MouseEnter += new System.EventHandler(BtnEnter);
btn.MouseLeave += new System.EventHandler(BtnLeave);
}

public static void BtnDown(object sender, EventArgs e)
{
Button btn = (Button)sender;
btn.ImageIndex = 1; // The button ImageList property
// contains an imagelist with the 4 images
}

public static void BtnUp(object sender, EventArgs e)
{
Button btn = (Button)sender;
btn.ImageIndex = 0;
}

public static void BtnEnter(object sender, EventArgs e)
{
Button btn = (Button)sender;
btn.ImageIndex = 2;
}

public static void BtnLeave(object sender, EventArgs e)
{
Button btn = (Button)sender;
btn.ImageIndex = 0;
}


CU,
Christian
My System SpecsSystem Spec