繁体   English   中英

在没有选择C#Windows应用程序的组合框中的项目的情况下,selectedIndexChanged会自动触发

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM