MouseUp事件错误

时间:2013-12-19 20:34:21

标签: c# winforms events mouseevent mouseup

我是WinForms事件的新手,我收到一个奇怪的错误。当我开始控制时,我写的是:

this.MouseUp += MouseUpMethod;

但问题是,当我从我的控制中释放鼠标按钮时,程序识别出我将鼠标放在控件上。我无法理解这个错误。 有没有人得到这个错误?

2 个答案:

答案 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
    }