C#防止datagridview中的同一个组合框列被自动生成

时间:2014-10-23 15:30:09

标签: c# winforms datagridview combobox

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

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源中的其他列。

我该如何克服这个问题?我试过检查列是否已经存在但是无法解决它.FYI,我的数据源是实体模型。

1 个答案:

答案 0 :(得分:0)

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

dataGridViewName.Columns.Clear();

在这种情况下:

dgvLoadTable.Columns.Clear();
相关问题