我是WinForms事件的新手,我收到一个奇怪的错误。当我开始控制时,我写的是:
this.MouseUp += MouseUpMethod;
但问题是,当我从我的控制中释放鼠标按钮时,程序识别出我将鼠标放在控件上。我无法理解这个错误。 有没有人得到这个错误?
答案 0 :(得分:1)
这是因为,默认情况下,您的控件会捕获鼠标。只需在false
事件处理程序中将Control.Capture设置为MouseDown
某处,例如:
void MouseDown(object sender, MouseEventArgs e) {
this.Capture = false;
}
作为替代方案,只需检查MouseUp
鼠标仍在您的控件内:
void MouseUp(object sender, MouseEventArgs e) {
if (ClientRectangle.Contains(PointToClient(Cursor.Position))) {
// Your code here
}
}
答案 1 :(得分:0)
请注意,您需要在InitializeComponent()
之后将事件与事件处理程序相关联 public Form1()
{
InitializeComponent();
this.button2.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button2_MouseUp);
}
那么你的事件处理程序应该是
private void button2_MouseUp(object sender, MouseEventArgs e)
{
//Do stuff here
}