DataGridViewComboBoxColumn 选定值/索引
DataGridViewComboBoxColumn Selected Value / Index
我正在尝试使用字符串列表填充 DataGridViewComboBoxColumn,然后 select 根据它们在表单加载时的值来填充其中之一。
人们会认为这是一项简单的任务,但我就是做不对。
我正在用这样的字符串填充 DataGridViewComboBoxColumn,没有问题:
ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
我似乎也能够毫无问题地将它添加到 DataGridView(这是不正确的,请参阅编辑):
ExampleDataGrid.Rows.Add("", ComboBoxColumn, 1000, "");
现在我想将 "Mr." 设置为 select 加载。其他帖子建议我应该能够简单地使用:
ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value = "Mr.";
但是每当我使用它时,我都会收到一个错误,告诉我该值无效。
有什么我想念的吗?
但是我可以毫无问题地使用它来获取设定值:
string Title = ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value;
我查看了文档,但它似乎没有提到如何在这种情况下实际使用 .Value。
Microsoft Docs
任何关于我哪里出错的想法都会很棒。
编辑:
我遇到的问题是由于我在
"ExampleDataGrid.Rows.Add()"。这实际上应该包含您要设置的值。例如
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");
}
然后以这种方式更新第二行 comboBoxColumn
的值:
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
的 Items
的值之间。
我正在尝试使用字符串列表填充 DataGridViewComboBoxColumn,然后 select 根据它们在表单加载时的值来填充其中之一。
人们会认为这是一项简单的任务,但我就是做不对。
我正在用这样的字符串填充 DataGridViewComboBoxColumn,没有问题:
ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
我似乎也能够毫无问题地将它添加到 DataGridView(这是不正确的,请参阅编辑):
ExampleDataGrid.Rows.Add("", ComboBoxColumn, 1000, "");
现在我想将 "Mr." 设置为 select 加载。其他帖子建议我应该能够简单地使用:
ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value = "Mr.";
但是每当我使用它时,我都会收到一个错误,告诉我该值无效。 有什么我想念的吗?
但是我可以毫无问题地使用它来获取设定值:
string Title = ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value;
我查看了文档,但它似乎没有提到如何在这种情况下实际使用 .Value。 Microsoft Docs
任何关于我哪里出错的想法都会很棒。
编辑:
我遇到的问题是由于我在 "ExampleDataGrid.Rows.Add()"。这实际上应该包含您要设置的值。例如
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");
}
然后以这种方式更新第二行 comboBoxColumn
的值:
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
的 Items
的值之间。