将DataGridViewComboBoxColumn添加到DataGridView,每行中包含不同的值

时间:2015-11-11 01:53:52

标签: c# datagridviewrow datagridviewbuttoncolumn

在网上发现了很多文章,但无法找到我想要的解决方案。

我的任务: 将DataGridViewComboBoxColumn添加到datagridview,但每行在其各自的组合框中应具有不同的值。

这是我的代码,

dgv.Columns.Clear();
dgv.Rows.Clear();

dgv.Columns.Add("package", "Version");

foreach (DirectoryInfo item in (new DirectoryInfo("E:\\MyProjects")).GetDirectories())
{
    dgv.Rows.Add(item.Name);

}

DataGridViewButtonColumn downloadColumn = new DataGridViewButtonColumn
{
    HeaderText = "Download",
    Name = "download",
    Text = "Download",
    UseColumnTextForButtonValue = true
};

dgv.Columns.Add(downloadColumn);

// Add Combobox column
DataGridViewComboBoxColumn books = new DataGridViewComboBoxColumn();
books.HeaderText = "Books";

books.Items.Add("Book1");
books.Items.Add("Book2");


dgv.Columns.Insert(1, books);

My Data Grid View

跌幅只是空的。我已经尝试将books.Items.Add(sub directories.Name)放在每行的foreach循环中,然后组合框根本不会得到任何值。我试图在组合框中显示子目录。不知道为什么它没有显示值(books.Items仍然有我添加的项目,它们只是没有显示)。

让我疯狂的是我的家用电脑(Windows 10,Visual Studio 2013,.NET 4.5)上的同一段代码,但我的办公室电脑上没有(Windows 7,Visual Studio 2012 ,. NET 4.5)。有人可以帮忙!

我收到此异常 - DataGridView:System.ArgumentException:DataGridViewComboBoxCell值无效。要替换此默认对话框,请处理DataError事件。

非常感谢提前!!!!

1 个答案:

答案 0 :(得分:0)

固定!所以我将数据网格视图设置为只读。在readonly = false之后,所有都按预期工作!!