Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGridViewComboBoxColumn选定值/索引_C#_Winforms_Datagridview_Datagridviewcomboboxcolumn - Fatal编程技术网

C# DataGridViewComboBoxColumn选定值/索引

C# DataGridViewComboBoxColumn选定值/索引,c#,winforms,datagridview,datagridviewcomboboxcolumn,C#,Winforms,Datagridview,Datagridviewcomboboxcolumn,我试图用字符串列表填充DataGridViewComboBoxColumn,然后根据表单加载时的值选择其中一个字符串 一个简单的任务,一个人会想,但我就是不能得到它的权利 我正在用字符串填充DataGridViewComboBoxColumn,没有问题: ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr."); 我似乎还能够毫无问题地将其添加到DataGridView(这是不正确的,请参见编辑): 现在我想将“Mr.”设置为在加载时

我试图用字符串列表填充DataGridViewComboBoxColumn,然后根据表单加载时的值选择其中一个字符串

一个简单的任务,一个人会想,但我就是不能得到它的权利

我正在用字符串填充DataGridViewComboBoxColumn,没有问题:

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.“,”);