组合框的数量在第一组结果后增加

本文关键字:一组 结果 增加 组合 | 更新日期: 2023-09-27 18:20:51

I am populating my datagrid based on a value in the textbox.

网格视图中的字段值之一是组合框。在一个特定的文本框条目上,它向我显示了正确的结果,但 wen 我在文本框中给出了另一个值,组合框增加了它的数量,这意味着如果我输入 100,数据将正确填充在我的组合框中,但对于接下来提供的任何值,组合框的数量变为 2.我不知道为什么会发生这种情况。这是单击按钮的代码。请帮忙

 DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
 combo.HeaderText = "Supplier";
 //execute sql data adapter to get supplier values
 DataTable dt = obj.SqlDataTable("select name1 from blahblah");
 //foreach (DataRow supplier in dt.DataSet.Tables[0].Rows)
 //{
 //    combo.Items.Add(supplier[0]);
 //}
 //dataGridView1.Columns.Add(combo);
   foreach (DataRow row in dt.Rows)
   {
    combo.Items.Add(row["NAME1"].ToString());
    }
    dataGridView1.Columns.Add(combo);

组合框的数量在第一组结果后增加

您每次点击都会添加新的组合框...而是检查 comboboxColumn 是否已添加,如果已存在,请适当修改其内容。

若要执行此检查,请按如下所示命名组合框列:

    combo.Name = "Supplier";

name 属性不会显示在 UI 中,但 Windows 窗体会记住它。 然后,您可以测试您的列是否已添加:

  if (!dataGridView1.Columns.Contains("Supplier"))

我不确定文本框,但每次单击时,网格中都会添加一个新DataGridViewComboBoxColumn。如果单击 5 次,您将看到 5 个 DataGridViewComboBoxColumns,下拉列表是 sql 查询的结果。

您需要检查是否已添加DataGridViewComboBoxColumns组合

if (dataGridView1.Columns.IndexOf(combo) < 0)
{
   // Add
}