gpt4 book ai didi

.net - 如何以编程方式关闭 VB.NET 中的 ComboBox 下拉菜单?

转载 作者:行者123 更新时间:2023-12-05 02:24:58 25 4
gpt4 key购买 nike

在 Windows 窗体应用程序 (VB.NET) 中,我有一个组合框,在某些情况下,当用户打开下拉列表时,我想显示一条警告消息。所有这些都运行良好:在 DropDown 事件中,我检查条件,如果需要,我显示警告消息。问题是,当用户在警告消息上单击"is"时,我移至主窗体上的另一个选项卡,下拉列表仍然显示,即使我已经离开包含组合框的选项卡。我搜索了很多并尝试将 DroppedDown 设置为 False,调用 OnDropDownClosed 等,但没有任何效果。似乎当我尝试从 DropDown 事件中关闭下拉列表时,它不起作用。任何人都可以提出任何建议吗?

感谢您到目前为止的回答。我忘了说我使用的是 .NET Framework 2。

最佳答案

这里的问题是 WinForms 在引发事件后 将鼠标“捕获”到下拉菜单。因此,在您的事件处理程序中,您无法采取任何措施来阻止下拉菜单。不过,您可以做的是安排鼠标“取消捕获”。

    private void comboBox1_DropDown(object sender, EventArgs e)
{
Dispatcher.CurrentDispatcher.BeginInvoke((Action)(()=>comboBox1.Capture=false));
}

在 .NET 4 中,Dispatcher 位于 System.Windows.Threading 命名空间下的 WindowsBase 程序集中。

关于.net - 如何以编程方式关闭 VB.NET 中的 ComboBox 下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680688/

25 4 0