【问题标题】:Detect when ComboBox is clicked on Winforms检测何时在 Winforms 上单击 ComboBox
【发布时间】: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 事件更适合您的情况,因为它在通过键盘打开时也是直接的。

标签: c# winforms combobox mouseevent


【解决方案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 类。
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多