【发布时间】: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