c#如何捕获文本框外的鼠标事件

时间:2017-10-14 08:56:19

标签: c#

当我关注文本框时,我需要隐藏ListBox。如果我点击不同的控件或使用Tab键,那么文本框""离开"事件发生。但是,如果我在表单内点击任何可用空间,那么焦点就不会发生。我看到了一些叫做鼠标捕获的东西,但我无法实现它。 enter image description here

我试过这个:

private void txtProduct_Enter(object sender, EventArgs e)
{
    listProduct.Show();
    UIElement el = (UIElement)sender;
    el.CaptureMouse();
}  

private void MouseClickedElseWhere(object sender, MouseEventArgs e)
{
    if (e.Clicks >= 1)
    {
        txtProduct_Leave(sender, new EventArgs());
    }
}

private void txtProduct_Leave(object sender, EventArgs e)
{
    listProduct.Hide();
}

但显然它显示错误。我该如何实现这一目标?有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

即使groupbox默认没有点击事件,我也必须为我的群组制作点击事件。

//my_page.designer.cs  
this.groupBox2.Click += new System.EventHandler(this.groupBox2_clicked);  

//my_page.cs  
private void groupBox2_clicked(object sender, EventArgs e)
{
    listProduct.Hide();
}