0

在网上找到了很多文章,但对我正在寻找的解决方案无济于事。

我的任务:将 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 事件。

提前谢谢了!!!!

4

1 回答 1

0

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

于 2015-11-11T19:27:24.320 回答