【发布时间】:2012-12-12 02:07:34
【问题描述】:
我只是无法让它工作。 我在 winforms 中有一个 datagridview,在我的这一列中是一个 DataGridViewComboBoxColumn。
在我的构造函数中我是这样设置的
DataGridViewComboBoxColumn column = (DataGridViewComboBoxColumn)RectangleGrid.Columns["Material"];
DataTable data = new DataTable();
data.Columns.Add(new DataColumn("Value", typeof(int)));
data.Columns.Add(new DataColumn("Description", typeof(string)));
foreach (Materials M in DataStructure.Active.Active_Materials)
{
data.Rows.Add(M.MaterialNr, (M.MaterialNr + 1).ToString() + " " + M.Material.Name);
}
column.DataSource = data;
column.ValueMember = "Value";
column.DisplayMember = "Description";
它实际上运行良好,只是在我想要的下拉框中没有选择任何内容。我已经用谷歌搜索了这个,例如尝试了这种方法:http://goo.gl/kBy8W 但没有成功,因为 EditingControlShowing 仅在我单击该框时发生,而不是在它第一次出现时发生(因此我可以在单击它后设置选定的索引,但这不好)。 CellFormatting 版本至少会更改值,但它只是将一个字符串放在那里,而不是我的数据源中的第一个索引。
我也试过了
column.DefaultCellStyle.NullValue = data.Rows[0]["Description"];
column.DefaultCellStyle.DataSourceNullValue = data.Rows[0]["Value"];
这似乎有效,但是当我选择下拉列表中的第一个索引时(所以下拉下拉列表,然后选择第一个索引,然后取消选择单元格)我从 ParseFormattedValue 收到一个错误,它说它无法转换“值”到 system.String。
这似乎在正确的轨道上,但我无法让它工作:http://goo.gl/VevA3
【问题讨论】:
标签: winforms datagridview indexing datagridviewcombobox