第二次没有触发cmbState_SelectedValueChanged事件

时间:2013-10-20 13:15:17

标签: c# winforms

我有两个组合框状态和城市,当我在状态中选择值时city combobx中的stateselection按照selectedIndexchanged event进行第一次值更改但是如果我选择另一个状态而不是城市值则第二次不会根据陈述,为什么事件没有被第二次触发?我也试过了private void cmbState_SelectedValueChanged(object sender, EventArgs e) { string stateName = cmbState.SelectedItem.ToString(); DataTable dt3 = DBHandling.GetcityDataTable(stateName); if (dt3 != null && dt3.Rows.Count > 0) { foreach (DataRow dr in dt3.Rows) { cmbCity.Items.Add(dr["CityName"].ToString()); } } } ,但同样的问题,或者我应该使用哪个事件,下面是我正在使用的代码

{{1}}

2 个答案:

答案 0 :(得分:1)

你确定第二次没有开火吗?看起来您可能需要清除城市组合框,然后在状态选择更改时将城市添加到城市组合框中。现在,您只是将城市添加到列表中。当您再次更改状态选择时,城市列表仍然存在,您只是在列表中添加更多城市。

试试这个:

    private void cmbState_SelectedValueChanged(object sender, EventArgs e)

    {
        string stateName = cmbState.SelectedItem.ToString();
        DataTable dt3 = DBHandling.GetcityDataTable(stateName);

        cmbCity.Items.Clear();

        if (dt3 != null && dt3.Rows.Count > 0)
        {
            foreach (DataRow dr in dt3.Rows)
            {
                cmbCity.Items.Add(dr["CityName"].ToString());
            }
        }
    }

答案 1 :(得分:0)

它被触发了..

您没有清除列表,因此您无法看到添加的新值

cmbCity.Items.Clear();