C# DataGridViewComboBoxColumn选定值/索引
我试图用字符串列表填充DataGridViewComboBoxColumn,然后根据表单加载时的值选择其中一个字符串 一个简单的任务,一个人会想,但我就是不能得到它的权利 我正在用字符串填充DataGridViewComboBoxColumn,没有问题:C# DataGridViewComboBoxColumn选定值/索引,c#,winforms,datagridview,datagridviewcomboboxcolumn,C#,Winforms,Datagridview,Datagridviewcomboboxcolumn,我试图用字符串列表填充DataGridViewComboBoxColumn,然后根据表单加载时的值选择其中一个字符串 一个简单的任务,一个人会想,但我就是不能得到它的权利 我正在用字符串填充DataGridViewComboBoxColumn,没有问题: ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr."); 我似乎还能够毫无问题地将其添加到DataGridView(这是不正确的,请参见编辑): 现在我想将“Mr.”设置为在加载时
ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
我似乎还能够毫无问题地将其添加到DataGridView(这是不正确的,请参见编辑):
现在我想将“Mr.”设置为在加载时选择。其他帖子建议我应该能够简单地使用:
ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value = "Mr.";
但每当我使用它时,我都会收到一个错误,告诉我该值无效。
有什么我遗漏的吗
但是,我可以使用此选项获得设定值,而不会出现问题:
string Title = ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value;
我看了文档,但它似乎没有提到如何在这个上下文中实际使用.Value。
任何关于我哪里出错的想法都会很好
编辑:
我遇到的问题是由于我在
“ExampleDataGrid.Rows.Add()”。这实际上应该包含要设置的值。e、 g
ExampleDataGrid.Rows.Add("", "Mr.", 1000, "");
您可以通过以下方式初始化
DataGridView
:
private void Form1_Load(object sender, EventArgs e)
{
var textBoxColumn = new DataGridViewTextBoxColumn();
textBoxColumn.Name = "textBoxColumn";
var comboBoxColumn = new DataGridViewComboBoxColumn();
comboBoxColumn.Items.AddRange("A", "B", "C");
comboBoxColumn.Name = "comboBoxColumn";
dataGridView1.Columns.Add(textBoxColumn);
dataGridView1.Columns.Add(comboBoxColumn);
dataGridView1.Rows.Add("1", "A");
dataGridView1.Rows.Add("2", "B");
}
private void button1_Click(object sender, EventArgs e)
{
//You can use either of the following ways:
dataGridView1[1, 1].Value = "C";
//dataGridView1["comboBoxColumn", 1].Value = "C";
//dataGridView1.Rows[1].Cells["comboBoxColumn"].Value = "C";
//dataGridView1.Rows[1].Cells[1].Value = "C";
}
然后通过以下方式更新第二行的comboBoxColumn
的值:
private void Form1_Load(object sender, EventArgs e)
{
var textBoxColumn = new DataGridViewTextBoxColumn();
textBoxColumn.Name = "textBoxColumn";
var comboBoxColumn = new DataGridViewComboBoxColumn();
comboBoxColumn.Items.AddRange("A", "B", "C");
comboBoxColumn.Name = "comboBoxColumn";
dataGridView1.Columns.Add(textBoxColumn);
dataGridView1.Columns.Add(comboBoxColumn);
dataGridView1.Rows.Add("1", "A");
dataGridView1.Rows.Add("2", "B");
}
private void button1_Click(object sender, EventArgs e)
{
//You can use either of the following ways:
dataGridView1[1, 1].Value = "C";
//dataGridView1["comboBoxColumn", 1].Value = "C";
//dataGridView1.Rows[1].Cells["comboBoxColumn"].Value = "C";
//dataGridView1.Rows[1].Cells[1].Value = "C";
}
为单元格设置的值应介于添加到
DataGridViewComboBoxColumn
的项中的值之间。combobox项中的在末尾有一个
Mr
在项目中不存在,因此将其设置为combobox单元格的值将引发异常。很遗憾,这并不能解决问题。我收到相同的错误消息Exception={“DataGridViewComboxCell值无效。”}您查看过调试器了吗?ExampleDataGrid.Rows[i]中的对象是什么类型的。单元格[“ExampleColumnName”]
Cells[“ExampleColumnName”]是DataGridViewCellsCollection,但是.Value在运行时显示为DataGridViewComboBoxColumn。不过,一般来说,我建议使用数据绑定,而不是使用未绑定的DataGridView
。谢谢您,这是一个很好的例子。看看这个,我相信我是以错误的方式添加组合框值的。例如datagrid.Rows.Add(“,ComboBoxColumn,1000,”);例如,应该是ExampleDataGrid.Rows.Add(“,”Mr.“,”);