2

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

cmbCountry.DataSource = lstcountry;

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

cmbCountry.SelectedItem="United States of America";

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

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

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

4

2 回答 2

6

当用户通过 UI 进行操作时,SelectionChangeCommitted 会触发。

仅当用户更改组合框选择时才会引发 SelectionChangeCommitted。Do not use SelectedIndexChanged or SelectedValueChanged to capture user changes, because those events are also raised when the selection changes programmatically.

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

使用 SelectedIndexChanged 或 SelectedValueChanged

于 2013-10-15T11:44:49.357 回答
0

将您的活动更改为SelectedIndexChanged

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

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

this.cmbCountry.SelectedIndexChanged += new System.EventHandler(this.lstResults_SelectedIndexChanged);
于 2013-10-15T11:45:06.930 回答