当我关注文本框时,我需要隐藏ListBox。如果我点击不同的控件或使用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();
}
但显然它显示错误。我该如何实现这一目标?有什么帮助吗?
答案 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();
}