我是 WinForms 事件的新手,遇到了一个奇怪的错误。好吧,我在启动控件时会写:
this.MouseUp += MouseUpMethod;
但问题是,当我释放鼠标按钮时,程序会识别出我在控件上释放鼠标。我无法理解这个错误。有人遇到过这个错误吗?
我是 WinForms 事件的新手,遇到了一个奇怪的错误。好吧,我在启动控件时会写:
this.MouseUp += MouseUpMethod;
但问题是,当我释放鼠标按钮时,程序会识别出我在控件上释放鼠标。我无法理解这个错误。有人遇到过这个错误吗?
这是因为默认情况下,您的控件会捕获鼠标。只需将Control.Capture设置为事件处理程序中的false
某个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
}
}
看,您需要在 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
}