检测何时在 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】:

尝试 OnMouseEnterOnKeyPress 方法。 我希望这就是你正在寻找的。 您可以在此处找到更多详细信息: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.combobox?view=net-5.0

【讨论】:

嗨!我想我应该给出更详细的答案。可能需要展示有限的 winforms 类。

以上是关于检测何时在 Winforms 上单击 ComboBox的主要内容,如果未能解决你的问题,请参考以下文章

如何检测何时单击文件输入的取消?

如何检测何时单击矩形对象、图像或精灵

如何检测变量何时更改值

如何检测用户何时单击 lyft 按钮 swift

如何检测何时单击/点击 MapMarker? [复制]

检测是不是在 WPF 和 Winforms 中的 UI 线程上