选择的索引更改是自动触发的,而无需在 c# Windows 应用程序的组合框中选择项目

本文关键字:选择 Windows 组合 项目 应用程序 索引 | 更新日期: 2023-09-27 18:30:40

我有一个从数据库填充的组合框。代码如下

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

但问题是此事件是在运行项目时自动触发的,而不允许我从组合框中选择项目。

选择的索引更改是自动触发的,而无需在 c# Windows 应用程序的组合框中选择项目

您可以订阅 SelectionChangeCommit 事件,而不是 SelectedIndexChanged 事件。 或者,您可以在数据加载

之前取消订阅 SelectedIndexChanged 事件,并在数据加载到组合框后订阅它。您可以通过多种方式解决此问题。

相关文章: