在 Windows 窗体应用程序 (VB.NET) 中,我有一个组合框,在某些条件下,当用户打开下拉列表时,我想显示一条警告消息。
所有这些都运行良好:在 DropDown 事件中,我检查条件,如果需要,我会显示警告消息。
问题是,当用户在警告消息上单击“是”时,我会移动到主窗体上的另一个选项卡,并且下拉列表仍然显示,即使我已经离开包含组合框的选项卡。
我已经搜索了很多并尝试将 DroppedDown 设置为 False,调用 OnDropDownClosed 等,但没有任何效果。
似乎当我尝试从 DropDown 事件中关闭下拉列表时,它不起作用。
任何人都可以提出任何建议吗?
感谢到目前为止的回答。我忘了提及我使用 .NET Framework 2。
这里的问题是 WinForms 将鼠标“捕获”到下拉菜单after它引发了该事件。因此,在您的事件处理程序中,您无法采取任何措施来阻止下拉菜单。你什么can不过要做的就是安排鼠标“取消捕获”。
private void comboBox1_DropDown(object sender, EventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(()=>comboBox1.Capture=false));
}
在 .NET 4 中,Dispatcher 位于 System.Windows.Threading 命名空间下的 WindowsBase 程序集中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)