datagridview组合框单元c#

时间:2012-03-02 12:12:04

标签: c# datagridview combobox

我的代码:

 DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell();     
 DataTable data = new DataTable();

data.Columns.Add(new DataColumn("Value", typeof(string)));
data.Columns.Add(new DataColumn("Description", typeof(string)));



data.Rows.Add("5", "6");
data.Rows.Add("51", "26");
data.Rows.Add("531", "63");
cell.DataSource = data;
cell.ValueMember = "Value";
cell.DisplayMember = "Description";

cell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
dataGridView1.Rows[0].Cells[0] = cell;

显示组合框,但无法选择任何值。 什么错了

1 个答案:

答案 0 :(得分:7)

您通常不使用DataGridView中的各个单元格类型。相反,您需要添加DataGridViewComboBoxColumn类型的列。

因此,您需要以下内容代替您提供的代码:

var column = new DataGridViewComboBoxColumn();      
DataTable data = new DataTable(); 

data.Columns.Add(new DataColumn("Value", typeof(string))); 
data.Columns.Add(new DataColumn("Description", typeof(string))); 

data.Rows.Add("5", "6"); 
data.Rows.Add("51", "26"); 
data.Rows.Add("531", "63"); 

column.DataSource = data; 
column.ValueMember = "Value"; 
column.DisplayMember = "Description"; 

dataGridView1.Columns.Add(column); 

作为参考,DataGridViewCombobBoxCell上的文档位于MSDN here上。您还可以在那里找到有关DataGridView的信息。另一个非常好的参考是DataGridViewFAQ