NumericUpDown:修复MouseEnter和MouseLeave事件

时间:2018-06-15 07:42:11

标签: c# winforms events numericupdown

我目前正在研究WinForms NumericUpDown Control的子类。但是因为它们构建它所以它包含多个子控件,它会弄乱MouseLeave和MouseEnter事件。

当鼠标移动到控件边界时,MouseEnter将在鼠标移过其中一个子控件(例如向上和向下箭头按钮)时触发,然后触发MouseExit。除此之外,MouseExit有时根本不会触发,特别是当鼠标快速移出控制范围时... ...

如何才能正常启动事件或解决此问题?

编辑:

这是一个简单的代码示例:

public class TMNumericUpDownControl : NumericUpDown
{
    public TMNumericUpDownControl()
    {
        MouseEnter += MouseEnterHandler;
        MouseLeave += MouseLeaveHandler;
    }

     private void MouseEnterHandler(object sender, EventArgs e)
    {
        Debug.WriteLine("entered");
    }

    private void MouseLeaveHandler(object sender, EventArgs e)
    {
        Debug.WriteLine("Left");
    }
}

1 个答案:

答案 0 :(得分:0)

好的,我自己就知道了。

我注意到我可以通过NumericUpDownName.Controls访问NumericUpDowns子控件,并为它们分配事件处理程序。以为这是不可能的......

这意味着这实际上是一个重复的问题。