cmbState_SelectedValueChanged事件不会再次触发

本文关键字:SelectedValueChanged 事件 cmbState | 更新日期: 2023-09-27 18:36:04

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

cmbState_SelectedValueChanged事件不会再次触发

您确定事件不会第二次触发吗? 看起来您可能需要清除城市组合框,然后才能在州选择更改时向其添加城市。 现在,您只是将城市添加到列表中。当您再次更改州选择时,城市列表仍然存在,您只是向列表中添加了更多城市。

试试这个:

    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());
            }
        }
    }

它被触发了。

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

cmbCity.Items.Clear();
相关文章:
  • 没有找到相关文章