关于DataGridViewComboBoxColumn的赋值问题!!
我是先将DataGridView绑了数据,然后用绑定数据的一个ComboBox列替换了原来对应字段的TEXTBOX列,但是在赋值时遇到了问题,如红字体,赋完值后,我随便点了一下“ID”和“Position”的列头,在该列排序的同时中间的两个ComboBox列原本已选好的值全部都消失了,如下图,我原以为是临时行的问题,就换了如绿体的方法,但是效果依旧,谁知道这个问题如何解决?
public bool columns_replace(string str_sql, string str_field)
{
DataSet ds = new DataSet();
ds = database_link(str_sql);
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("该字段信息不存在!");
return false;
}
DataGridViewComboBoxColumn dg = new DataGridViewComboBoxColumn();
dg.DataSource = ds.Tables[0];
dg.ValueMember = "ID";
dg.DisplayMember = "Name";
int int_index = dgv_edit.Columns[str_field].Index;
dgv_edit.Columns.Insert(int_index, dg);
foreach (DataGridViewRow dr in dgv_edit.Rows)
{
dr.Cells[int_index].Value = dr.Cells[int_index + 1].Value;
}
//for (int int_row = 0; int_row < dgv_edit.Rows.Count; int_row++)
//{
// dgv_edit.Rows[int_row].Cells[int_index].Value = dgv_edit.Rows[int_row].Cells[int_index+1].Value;
//}
dgv_edit.Columns.Remove(str_field);
dgv_edit.Columns[int_index].Name = str_field;
dgv_edit.Columns[int_index].HeaderText = str_field;
return true;
}

public bool columns_replace(string str_sql, string str_field)
{
DataSet ds = new DataSet();
ds = database_link(str_sql);
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("该字段信息不存在!");
return false;
}
DataGridViewComboBoxColumn dg = new DataGridViewComboBoxColumn();
dg.DataSource = ds.Tables[0];
dg.ValueMember = "ID";
dg.DisplayMember = "Name";
int int_index = dgv_edit.Columns[str_field].Index;
dgv_edit.Columns.Insert(int_index, dg);
foreach (DataGridViewRow dr in dgv_edit.Rows)
{
dr.Cells[int_index].Value = dr.Cells[int_index + 1].Value;
}
//for (int int_row = 0; int_row < dgv_edit.Rows.Count; int_row++)
//{
// dgv_edit.Rows[int_row].Cells[int_index].Value = dgv_edit.Rows[int_row].Cells[int_index+1].Value;
//}
dgv_edit.Columns.Remove(str_field);
dgv_edit.Columns[int_index].Name = str_field;
dgv_edit.Columns[int_index].HeaderText = str_field;
return true;
}

...全文
相关推荐
自定义可以手动自由输入的DataGridviewComboBoxColumn
自定义可以手动自由输入的DataGridviewComboBoxColumn,不错的
C# WinForm (DataGridViewComboBoxColumn 绑定)自己写的,最简单实例
C# WinForm DataGridViewComboBoxColumn 绑定 自己写的,最简单实例
vb.net中datagridview控件列添加DataGridViewComboboxColumn编辑选中方案
vb.net中datagridview控件列添加DataGridViewComboboxColumn编辑选中方案 datagridview和Combobox综合应用
DataGridViewComboBoxColumn改进
以组件的方式实现对微软的c#.net 的 DataGridViewComboBoxColumn 的改进,能够实现datagridview中选择列的可编辑功能,不受下拉项内容的限制,能够正常的保存和检索。本程序是一个演示程序,基于c#.net和access。部分源代码来源于网上
DataGridViewComboBoxColumn 可以输入非items项
C# winform datagridview 里的下拉框中 既可以从下拉框里选择数据,也可以让客户自己手动往里输入数据,小小例子分享给大家。


