Combobox选择了索引更改事件未在代码中触发

时间:2013-10-15 11:38:41

标签: c# winforms

我正在使用Windows窗体应用程序,我有一个名为cmbCountry的组合框。我将这个组合框绑定到一个包含国家名称的列表。以下是填充组合框的代码。

cmbCountry.DataSource = lstcountry;

接下来,我想将所选项目设为“美利坚合众国”。所以我添加了以下代码

cmbCountry.SelectedItem="United States of America";

我想在这个组合框的选择更改事件上做一些代码。

private void cmbCountry_SelectionChangeCommitted(object sender, EventArgs e)
{
    \\some code
}

当我设置所选项目时,假设此方法被调用。但它没有被召集。但是当我从UI部分(设计部分)选择“美利坚合众国”时,此事件被调用。我想在设置所选项目时调用此事件。

2 个答案:

答案 0 :(得分:6)

当用户通过UI操作时,SelectionChangeCommitted将触发。

  

只有在用户更改时才会引发SelectionChangeCommitted   组合框选择。不要使用SelectedIndexChanged或   SelectedValueChanged捕获用户更改,因为这些事件是   当选择以编程方式改变时也会引发。

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted.aspx

使用SelectedIndexChanged或SelectedValueChanged

答案 1 :(得分:0)

将您的活动更改为SelectedIndexChanged

private void cmbCountry_SelectedIndexChanged(object sender, EventArgs e)
    {
        \\some code
    }

并更改事件处理程序(可能会自动生成):

this.cmbCountry.SelectedIndexChanged += new System.EventHandler(this.lstResults_SelectedIndexChanged);