![](/img/trans.png)
[英]Calling SelectedIndexChanged Event for a dynamically created combobox in C# Windows Forms
[英]The selectedIndexChanged is auto triggered without selecting items in combobox in c# windows application
我有一个从数据库填充的组合框,代码如下
protected void bindcombobox()
{
string str = "Data Source=IMMENSE-01\\SQLEXPRESS;Initial Catalog=DesktopAppDB;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(str);
con.Open();
SqlCommand cmd = new SqlCommand("select Id,designation from addStaff", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
DataSet ds = new DataSet();
da.Fill(ds);
da.Fill(dt);
cb_selectpost.Items.Clear();
if (dt.Rows.Count > 0)
{
cb_selectpost.DataSource = dt;
cb_selectpost.ValueMember = "Id";
cb_selectpost.DisplayMember = "designation";
}
con.Close();
con.Dispose();
}
我有从组合框选择项目时触发的此事件
private void cb_selectpost_SelectedIndexChanged(object sender, EventArgs e)
{
if (cb_selectpost.SelectedValue != null)
{
string st = cb_selectpost.SelectedValue.ToString();
lblCB.Text = st.ToString();
bindstaff(st);
}
}
但是问题在于,在运行项目时会自动触发此事件,而不会让我从组合框中选择项目。
您可以订阅SelectionChangeCommitted事件,而不是SelectedIndexChanged事件。 或者,您也可以在数据过期之前取消订阅SelectedIndexChanged事件,并在数据加载到组合框中之后对其进行订阅。 您可以通过多种方式解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.