0

我有两个组合框状态和城市,当我在状态中选择值时,第一次值会根据状态变化,city combobxstateselection第二次如果我选择另一个状态,而不是城市值不会根据状态值发生变化,为什么事件没有第二次被触发?我也试过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());
                }
            }
        }
4

2 回答 2

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());
            }
        }
    }
于 2013-10-20T13:23:30.747 回答
0

触发了..

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

cmbCity.Items.Clear();
于 2013-10-20T13:22:37.017 回答