我不知道如何为SO记录这个问题。我在WinForm和C#编程。在窗口中添加了一个comboBox并为其编写了事件处理程序。此窗口中的所有其他控件都会生成其点击事件,但不会生成combox?应该没有任何东西,但无论多少次点击下拉箭头或组合框本身,事件处理程序都不会被执行。
private void InitializeComponent()
{
//
// comboBox1
//
this.comboBox1.AllowDrop = true;
this.comboBox1.FormattingEnabled = true;
resources.ApplyResources(this.comboBox1, "comboBox1");
this.comboBox1.Name = "comboBox1";
this.comboBox1.SelectedIndexChanged += new System.EventHan(this.comboBox1_SelectedIndexChanged);
//
}
提前感谢您的帮助。
答案 0 :(得分:2)
根据你的描述,听起来你只是点击下拉菜单,期望它触发事件。您是否真的在菜单中选择了其他选项,或者只需单击箭头?只有当您更改菜单中的所选选项时,SelectedIndexChanged
才会触发。此外,在您的代码中,您有:
this.comboBox1.SelectedIndexChanged += new System.EventHan(this.comboBox1_SelectedIndexChanged);
它实际上是什么?那不应该编译。应该是:
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
编辑:
好的,我想我知道发生了什么事。双击设计器中的控件以连接事件的位置?如果是,则为该控件连接默认事件。因此,对于按钮,默认值为Click
事件。对于组合框,默认为SelectedIndexChanged
事件,不是“点击”事件。要在Click
上连接ComboBox
事件,请在设计器中打开表单。然后在设计器中选择ComboBox,然后按CTRL + W,P。这将打开控件的“属性”窗口。单击该窗口顶部的闪电图标,它将显示您可以在控件上使用的所有事件。在列表中找到“Click”并双击它,它将连接事件并将您带到该事件的新处理程序。
答案 1 :(得分:0)
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
或只是
this.comboBox1.SelectedIndexChanged += this.comboBox1_SelectedIndexChanged;