vb.net中如何给datagridview的每个combobox单元格指定独立的下拉列表

研究半天,发现combobox单元格好像只能指定所在列的下拉列表数据源。我的设想是:该列每个combobox单元格都有各自的下拉列表值,请参见附图就容易明白了。
msdn上说可以手动填充items,但是好像也是给整个列共享的,跟指定datasource一样,无法给每个单元格指定。

谁有好的法子? 不要告诉我再自定义一个类来做这个事,我就想基于这个原始的datagridview来实现。

  1、首先新建一个Windows应用程序,将主窗体重命名为MainForm,在MainForm中加入一个DataGridView控件,命名为dgv_User。
  2、打开窗体代码窗口,在代码窗口中声明一个ComboBox的控件
  // 定义下拉列表框
  private ComboBox cmb_Temp = new ComboBox();
  3、方法:
  /// <summary>
  /// 绑定下拉列表框
  /// </summary>
  private void BindSex()
  {
  DataTable dtSex = new DataTable();
  dtSex.Columns.Add("Value");
  dtSex.Columns.Add("Name");
  DataRow drSex;
  drSex = dtSex.NewRow();
  drSex[0] = "1";
  drSex[1] = "";
  dtSex.Rows.Add(drSex);
  drSex = dtSex.NewRow();
  drSex[0] = "0";
  drSex[1] = "";
  dtSex.Rows.Add(drSex);
  cmb_Temp.ValueMember = "Value";
  cmb_Temp.DisplayMember = "Name";
  cmb_Temp.DataSource = dtSex;
  cmb_Temp.DropDownStyle = ComboBoxStyle.DropDownList;
  }
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
Dim dtgCol As New DataGridViewComboBoxCell
dtgCol.DataSource = DataTable
dtgCol.DisplayMember = "colName"
dtgCol.ValueMember = "colId"
DataGridView1.Rows(0).Cells(0) = dtgCol
这个方法可以!你想要第几行第几列绑定什么内容都可以。试试!本回答被提问者采纳
第2个回答  2009-06-03
基于这个原始的datagridview来实现似乎不太好做..。

vb.net中如何给datagridview的每个combobox单元格指定独立的下拉...
1、首先新建一个Windows应用程序,将主窗体重命名为MainForm,在MainForm中加入一个DataGridView控件,命名为dgv_User。 2、打开窗体代码窗口,在代码窗口中声明一个ComboBox的控件 \/\/ 定义下拉列表框 private ComboBox cmb_Temp = new ComboBox(); 3、方法: \/\/\/ \/\/\/ 绑定下拉列表框 \/\/\/ private void BindS...

datagridview控件中的DataGridViewComboBoxColumn使用时怎么获取到下...
可以通过datagridview1.Rows[i].cell[0].Value.ToString()来得到这个所选的字符串,却得不到其SelectedIndex值,最初我想用(ComboBox)datagridview1.Rows[i].cell[0]来进行强制转换,但没有成功,没办法只好把上面得到的字符串再进行Switch,在每个case中进行枚举型的赋值,我想这肯定不是一个好的方...

vb中如何用ComboBOX控件显示DataGridView中的一列; 选中ComboBOX下拉表...
Button2的Click事件代码,目的,把DataGridView1第一列的数据添到ComboBox里面:‍Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click For i = 1 To DataGridView1.RowCount - 1 ComboBox1.Items.Add(DataGridView1.Item(0...

dataGridView如何添加下拉列表
在dataGridView的任务里面,也就是左上角的那个小箭头,选择添加列,类型选dataGridViewComboBoxColumn就出现了。然后再选择编辑列,编辑datasource或者是手动给items赋值,就好了。

vb.net中的DataGridView控件设置列为DataGridViewComboBoxColumn不能...
1. 在设计视图中,打开DataGridView控件的属性窗口。2. 找到Columns属性,点击编辑按钮以打开列编辑器。3. 在列编辑器中,选择要设置为组合框列的列,然后将ColumnType属性设置为DataGridViewComboBoxColumn。4. 在列编辑器的属性窗口中,找到DisplayStyle属性,并将其设置为ComboBox。5. 找到ReadOnly属性...

datagridview 单元格有一个下拉框,如何获取下拉框的值
这个是添加下拉框的 DataGridViewComboBoxColumn dcombo = new DataGridViewComboBoxColumn();dcombo.Items.Add("暂存");dcombo.Items.Add("留库");\/\/dcombo.Items.Add("归还");dcombo.Name = "combo";\/\/显示的位置列 dcombo.DisplayIndex = 0;dcombo.HeaderText = "入库方式";\/\/绑定数据库...

vb.net,datagridview单元格内打字时,单元格下拉显示SQL数据库搜索结果...
代码太长太复杂了,解释起来还麻烦,只能给个思路,自己研究吧!1。在datagridview中的keyPress事件中设置处理过程 2。处理过程为每次读取当前单元格(CurrentCell)的内容,查询SQL数据库 3。将查询结果放入一个代码创建的ComboBox的列表中

...view控件中的DataGridViewComboBoxColumn下拉项背景问题
\/\/先将你要赋值的那个Cell转换类型成DataGridViewComboBoxCell,然后就可以赋值了 DataGridViewComboBoxCell cell = dataGridView1[0, 0] as DataGridViewComboBoxCell;cell.Items.Add("aaa");cell.Items.Add("bbb");

C# datagridview能不能设置某个单元格为下拉列表
VS自己带的DatagridView可以实现(某一个列),你说的DEvcomponent也可以实现,实现下拉框均只需在设计列的时候设置好就可以了。如果你说仅仅是设置某一个单元格,我想这个可能性不太大(当然我没有这样实现过),我们可以进一步交流

c#中combox里绑定datagridview中的某一列的值,并显示在combox的下拉框中...
combox也有DataSource属性,直接把dataGridView1第一列的集合赋给combox就可以了,然后给combox的comboBoxGroup.ValueMember = "列名";属性赋值,两行代码就能搞定,不需要循环!

相似回答