将DataGridView列类型设置为在运行时下拉(C#.net)
我有一个datagridview,它的数据源被设置为数据视图->数据表,行和列在运行时自动生成将DataGridView列类型设置为在运行时下拉(C#.net),c#,.net,datagridview,combobox,drop-down-menu,C#,.net,Datagridview,Combobox,Drop Down Menu,我有一个datagridview,它的数据源被设置为数据视图->数据表,行和列在运行时自动生成 dtable.Columns.Add("1", typeof(int)); dtable.Columns.Add("2", typeof(string)); dtable.Columns.Add("3", typeof(string)); datagridview1.DataSource = dtable; DataGridViewComboBoxCell cb
dtable.Columns.Add("1", typeof(int));
dtable.Columns.Add("2", typeof(string));
dtable.Columns.Add("3", typeof(string));
datagridview1.DataSource = dtable;
DataGridViewComboBoxCell cbo1 = new DataGridViewComboBoxCell();
DataGridViewRow dataGridRow = new DataGridViewRow();
dataGridRow.Cells.Add(cbo1);
dataGridView1.Rows.Add(dataGridRow);
我希望第3列是一个下拉类型,其中有3个选项。我在运行时如何做到这一点,因为我只在运行时填充网格
dtable.Columns.Add("1", typeof(int));
dtable.Columns.Add("2", typeof(string));
dtable.Columns.Add("3", typeof(string));
datagridview1.DataSource = dtable;
DataGridViewComboBoxCell cbo1 = new DataGridViewComboBoxCell();
DataGridViewRow dataGridRow = new DataGridViewRow();
dataGridRow.Cells.Add(cbo1);
dataGridView1.Rows.Add(dataGridRow);
创建datagridview组合框并将其添加到datagridview1中
您可以创建一个datagridview组合框并将其添加到datagridview 1中。您可以通过编程方式向datagridview添加列 在您的情况下,需要做的是隐藏绑定到
DataTable
时生成的第3列,然后将DataGridViewComboBoxColumn
添加到以第三列的名称作为其DataPropertyName
属性的网格中
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.DataPropertyName = "3";
dataGridView1.Columns.Add(col);
然后将一个数据源分配给该列,其中该数据源包含要显示在网格中的三个选项
DataGridViewComboBoxColumn
还具有ValueMember
和DisplayMember
属性,允许您控制在网格数据源(ValueMember
)中设置的内容以及显示的内容。您可以通过编程方式将列添加到DataGridView
在您的情况下,需要做的是隐藏绑定到DataTable
时生成的第3列,然后将DataGridViewComboBoxColumn
添加到以第三列的名称作为其DataPropertyName
属性的网格中
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.DataPropertyName = "3";
dataGridView1.Columns.Add(col);
然后将一个数据源分配给该列,其中该数据源包含要显示在网格中的三个选项
DataGridViewComboBoxColumn
还具有ValueMember
和DisplayMember
属性,允许您控制在网格数据源(ValueMember
)中设置的内容以及显示的内容。将该列添加到dgv后,我将其数据源设置为datatable,但是,即使数据属性名称相同,显示dgv时也不会设置下拉值。@jaminator因此列有一个数据源,它不同于datagridview数据源,并且您是否正确设置了DataPropertyName和ValueMember属性?检查完后,如果仍然不起作用,请在问题中添加代码,说明您正在做什么。当我添加正确的DataPropertyName时,它起作用了,同时还设置了列名称。col.DataPropertyName=“3”;col.HeaderText=“3”;col.Name=“3”;将列添加到dgv后,我将其数据源设置为datatable,但在显示dgv时,即使数据属性名称相同,也不会设置下拉值。@jaminator因此该列有一个不同于datagridview数据源的数据源,您是否已正确设置DataPropertyName和ValueMember属性?检查完后,如果仍然不起作用,请在问题中添加代码,说明您正在做什么。当我添加正确的DataPropertyName时,它起作用了,同时还设置了列名称。col.DataPropertyName=“3”;col.HeaderText=“3”;col.Name=“3”;