Reputation: 40
I am new to WinForms events and I am getting a strange error.Well I write when I start my control:
this.MouseUp += MouseUpMethod;
But the problem is, when I release the mouse button out of my control, the program recognize as I release the mouse over the Control. I am not able to understand this error. Did ever someone got this error?
Upvotes: 0
Views: 674
Reputation: 67080
It's because, by default, your control captures mouse. Just set Control.Capture to false
somewhere in your MouseDown
event handler, for example:
void MouseDown(object sender, MouseEventArgs e) {
this.Capture = false;
}
As alternative just check in MouseUp
that mouse is still inside your control:
void MouseUp(object sender, MouseEventArgs e) {
if (ClientRectangle.Contains(PointToClient(Cursor.Position))) {
// Your code here
}
}
Upvotes: 1
Reputation: 4638
see, you need to associate event with event handler just after your InitializeComponent()
public Form1()
{
InitializeComponent();
this.button2.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button2_MouseUp);
}
then your event handler should be
private void button2_MouseUp(object sender, MouseEventArgs e)
{
//Do stuff here
}
Upvotes: 0