cmbState_SelectedValueChanged事件不会再次触发
本文关键字:SelectedValueChanged 事件 cmbState | 更新日期: 2023-09-27 18:36:04
我有两个组合框状态和城市,当我在状态中选择值时,第一次值根据stateselection
在city 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());
}
}
}
您确定事件不会第二次触发吗? 看起来您可能需要清除城市组合框,然后才能在州选择更改时向其添加城市。 现在,您只是将城市添加到列表中。当您再次更改州选择时,城市列表仍然存在,您只是向列表中添加了更多城市。
试试这个:
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();