在网上找到了很多文章,但对我正在寻找的解决方案无济于事。
我的任务:将 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 directory.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 事件。
提前谢谢了!!!!