【问题标题】:C# prevent same combobox column in datagridview from being autogeneratedC#防止自动生成datagridview中的相同组合框列
【发布时间】:2014-10-23 15:30:08
【问题描述】:

在我的 winForm 应用程序中,我使用以下代码在 datagridview 中添加组合框列:

dgvLoadTable.DataSource = null;
crudLoadData(0); //Calls function to load data in datagridview and recordNum is 
                 //set to 0 for showing the header only in dgvLoadTable
dgvLoadTable.ReadOnly = false;
dgvLoadTable.AllowUserToAddRows = true;
DataGridViewComboBoxColumn cboIsNew = new DataGridViewComboBoxColumn();
int i= dgvLoadTable.Columns["ColumnName"].Index;
dgvLoadTable.Columns.Insert(i, dgvCol);
dgvLoadTable.Columns[i].HeaderText = dgvLoadTable.Columns[i + 1].HeaderText;
dgvLoadTable.Columns[i + 1].Visible = false;

此代码在 treeView_NodeMouseClick 事件下执行。现在我第一次单击节点时它可以正常工作。但从第二次开始,它一直在 datagridview 的第一列索引处添加先前添加的列。因为,我正在重新绑定除 cboIsNew 之外的所有列(已添加到网格中),所以它现在成为第一个,并且最后重新添加了来自 dataGridView 源的其他列。

我该如何克服这个问题?我尝试检查列是否已存在但无法解决。仅供参考,我的数据源是实体模型。

【问题讨论】:

  • 我看到你正在设置 DataSource = null 但是你在哪里绑定 DataGridview...?请显示所有相关代码
  • 我这样做是为了从 datagridview 中删除以前加载的数据

标签: c# winforms datagridview combobox


【解决方案1】:

解决方法很简单。在将数据加载到 datagridview 之前,只需编写以下行:

dataGridViewName.Columns.Clear();

在这种情况下:

dgvLoadTable.Columns.Clear();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多