c# - DataGridView 设置列单元格 Combobox

标签 c# datagridview datagridviewcombobox

我在 Datagridview 中有这样的表格:

 Name   Money
 -------------
 Hi      100   //here Combobox with member {10,30,80,100} to choose
 Ki      30    //here Combobox with member {10,30,80,100} to choose

我想从组合框中更改“货币”列的值

我尝试过这个但不知道更多:

DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Money", typeof(String));
dt.Rows.Add(new object[] { "Hi", 100});
dt.Rows.Add(new object[] { "Ki", 30});

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
var list11 = new List<string>() { "10", "30", "80", "100" };
column.DataSource = list11;
column.ValueMember = "Money";
dataGridView1.Columns.Add(column); 

最佳答案

试试这个

dataGridView1.AutoGenerateColumns = false;

DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(String));
dt.Columns.Add("Money", typeof(String));
dt.Rows.Add(new object[] { "Hi", 100 });
dt.Rows.Add(new object[] { "Ki", 30 });

DataGridViewComboBoxColumn money = new DataGridViewComboBoxColumn();
var list11 = new List<string>() { "10", "30", "80", "100" };
money.DataSource = list11;
money.HeaderText = "Money";
money.DataPropertyName = "Money";

DataGridViewTextBoxColumn name = new DataGridViewTextBoxColumn();
name.HeaderText = "Name";
name.DataPropertyName = "Name";

dataGridView1.DataSource = dt;
dataGridView1.Columns.AddRange(name, money);

只需使用 DataPropertyName 而不是 ValueMember

关于c# - DataGridView 设置列单元格 Combobox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12747256/

相关文章:

c# - 按 String 成员对自定义对象的 ArrayList 进行排序

c# - 如何对忽略空白行的datagridview进行排序

c# - 如何使 ComboBox 下拉列表调整自身大小以适应最大的项目?

vb.net - 如何使 DataGridViewComboBoxColumn 的 ComboBox 接受用户新项目?

c# - c# 中的 HTTP 库

c# - 在 C# 中使用委托(delegate)作为属性是否正确?

c# - 本地化 WP7 应用程序

c# - 在未绑定(bind)的 DataGridView 中看不到行

vb.net - 在 vb.net 中的 datagridview 中拖放