【问题标题】:c# how to catch mouse event outside textboxc#如何捕捉文本框外的鼠标事件
【发布时间】:2017-10-14 08:56:18
【问题描述】:

当我关注文本框时,我需要隐藏一个列表框。如果我单击不同的控件或使用 Tab 键,则会发生文本框的“离开”事件。但是,如果我在表单内部单击任何可用空间,则不会发生聚焦。我看到了一种叫做鼠标捕获的东西,但我无法实现它。

我试过这个:

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();
}

但显然它显示错误。我如何做到这一点?有什么帮助吗?

【问题讨论】:

  • 你试过其他suggestions,similar to yours on SO吗?
  • 试试txtbox_Leave函数。
  • 是的,我已经尝试了我能找到的所有可能的建议。没有任何效果。请查看我编辑的代码。

标签: c#


【解决方案1】:

即使默认情况下 groupbox 没有 click 事件,我也必须为我的 groupbox 设置 click 事件。

//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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多