检测何时在 Winforms 上单击 ComboBox
Posted
技术标签:
【中文标题】检测何时在 Winforms 上单击 ComboBox【英文标题】:Detect when ComboBox is clicked on Winforms 【发布时间】:2021-07-01 02:56:03 【问题描述】:当我的combobox
被点击(未更改索引)时,我正在尝试执行一项操作。
基本上,每次用户单击组合框时,我都想从目录中获取一些项目,但由于某种原因,它似乎无法识别单击。我有两个函数,但是当我单击时它们都没有触发:
private void cmblist_MouseClick(Object sender, MouseEventArgs e)
//do something
void cmblist_Click(object sender, MouseEventArgs e)
//do something
我认为函数的主体并不重要,因为它们甚至不会触发.. 单击组合框时如何执行操作?
【问题讨论】:
您是否将事件处理程序添加到组合框的事件中?也许DropDown 事件更适合您的情况,因为它在通过键盘打开时也是直接的。 【参考方案1】:我想,您没有将此方法添加到您的 ComboBox.MouseClick 事件中。
如果您动态地执行此操作(像所有 OOP 程序员一样),您可以这样分配方法:
private void InitializeComboBox()
this.Controls.Add(cmbList);
cmbList.MouseClick += CmbList_MouseClick;
private void CmbList_MouseClick(object sender, MouseEventArgs e)
//do something...
如果您通过 WindowsForm Designer (手动添加所有内容)执行此操作,则应在 ComboBox 上单击 一次 并转到 Properties - > 事件 -> MouseClick 并从下拉菜单中选择您已有的方法。
【讨论】:
【参考方案2】:尝试 OnMouseEnter 或 OnKeyPress 方法。 我希望这就是你正在寻找的。 您可以在此处找到更多详细信息: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.combobox?view=net-5.0
【讨论】:
嗨!我想我应该给出更详细的答案。可能需要展示有限的 winforms 类。以上是关于检测何时在 Winforms 上单击 ComboBox的主要内容,如果未能解决你的问题,请参考以下文章