DataGridViewComboBoxColumn从其他列获取值

时间:2018-02-06 12:01:02

标签: c# datagridview datagridviewcomboboxcolumn

我从sql数据库中提取数据并用它填充datagridView1:

dataGridView1.DataSource = bsour;

用户将能够编辑1列中的值,但该列的可能值仅为Null,0,1或2,因此为了防止输入错误的值,我决定执行ComboBoxColumn:

DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn();
col1.Name = "il_normal_combo";
col1.HeaderText = "Normal";
col1.Items.Add("");
col1.Items.Add("0");
col1.Items.Add("1");
col1.Items.Add("2");
dataGridView1.Columns.Insert(5, col1);

另一个现在不必要的列我将隐藏.Visible = false; 我希望ComboBoxColumn显示将隐藏的其他列的数据库值,我似乎无法使其工作。

我尝试了什么:

col1.ValueMember = "il_normal";
col1.DisplayMember = "il_normal";

那些没有工作但没有错误信息的人。 这不起作用并产生错误"值不正确"

for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
     dataGridView1.Rows[i].Cells[5].Value = dataGridView1.Rows[i].Cells[7].Value;
}

1 个答案:

答案 0 :(得分:0)

我在这里找到了类似的问题 Change DataGridViewColumn to DataGridViewComboBoxColumn in bound DataGridView 但该帖子的解决方案对我不起作用。在ComboBoxColumn而不是数字,我得到System.Data.DataRows。(某事)所以我推断它不知道使用哪个列(即使在DataSource中只有一个)所以我添加了

col1.DisplayMember = "number";

然后它起作用了: - )