在网上发现了很多文章,但无法找到我想要的解决方案。
我的任务: 将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);
跌幅只是空的。我已经尝试将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事件。
非常感谢提前!!!!
答案 0 :(得分:0)
固定!所以我将数据网格视图设置为只读。在readonly = false之后,所有都按预期工作!!