DataGridViewComboBoxColumn tbc = new DataGridViewComboBoxColumn();
tbc.DataSource = dt;
tbc.DisplayMember = "性别";
tbc.ValueMember = "性别";  
tbc.DataPropertyName = "性别";
tbc.HeaderText = "性别";
tbc.FlatStyle = FlatStyle.System;
dataGridView1.Columns.AddRange(tbc)上面的代码我实现了数据和CobboBox的绑定。items和datasource 又不可同用。
用items方法时
DataGridViewComboBoxColumn tbc = new DataGridViewComboBoxColumn();
tbc.Items.AddRange(new string[] {"男","女"});
tbc.DataPropertyName = "性别";
tbc.HeaderText = "性别";
tbc.FlatStyle = FlatStyle.System;
dataGridView1.Columns.AddRange(tbc)
是实现在列表,没有记录就运行正常,有记录就会出错(DataGridViewComboBoxColl 值无效,要替换默认对话框)。不知道上面我说清楚没。呵。。
请指点一下我DataGridViewComboBoxColumn到底要如何应用??上面的代码如何改动??或给一个新的列子看看。(麻烦了,谢谢)

解决方案 »

  1.   

    DataGridViewComboBoxColumn tbc = new DataGridViewComboBoxColumn();
    tbc.DataSource = dt;
    tbc.DisplayMember = "性别";
    tbc.ValueMember = "性别";  
    tbc.DataPropertyName = "性别";
    tbc.HeaderText = "性别";
    tbc.FlatStyle = FlatStyle.System;
    dataGridView1.Columns.AddRange(tbc)
    上面的代码我实现了数据和CobboBox的绑定,但是不知道增加下拉列表。
      

  2.   

    使用动态绑定比较好,试试这个:DataGridViewComboBoxColumn SexColumn= 
                             (DataGridViewComboBoxColumn)datagridview.Columns["sex"];
    SexColumn.HeaderText = "性别";
    SexColumn.FlatStyle = FlatStyle.System;
    SexColumn.DataSource = "性别数据源";//如:dt
    SexColumn.DisplayMember = "Sex";
    SexColumn.ValueMember = "id";
      

  3.   

    谢谢楼上,这样的数据绑定是可以的。就是不知道怎么实现下拉列表,给定两个值,如:男,女;
    本想是在items中增加,不过items和datasource不能共用。谁来帮一下我。
      

  4.   

    实现下拉列表,通过设置了这个属性应该就可以:
    SexColumn.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
      

  5.   

    DisplayStyle 是组合框的显示方式。  ComboBox我是可以显示出来,就是没有items的值。我点ComboBox时没有选项,现在问题就是想要加入选项,男,女。不知道怎么实现。
      

  6.   

    建一个保存性别的代码表不可以吗?然后将这个表绑定到它的Datasoure属性
      

  7.   

    ITEMS.ADD()方法,调用两次
    一次加男,一次加女
    你的ADDRANGE方法可能有不对的地方,
      

  8.   

    我做过,,定义一个新的datatable 用来存放下拉列表框的字段。datasoure 绑定这个表,代码如下:
                DataTable temptable = new DataTable();
                temptable.Columns.Add();
                object[] rowvalues = new object[] { "男", "女" };
                for (int i = 0; i < 2; i++)
                {
                    temptable.Rows.Add(temptable.NewRow());
                    temptable.Rows[i][0] = rowvalues[i];
                }
                DataGridViewComboBoxColumn cbc = new DataGridViewComboBoxColumn();
                cbc.DataSource = temptable;
                cbc.DisplayIndex = 4;
                cbc.DataPropertyName = this.dt.Columns[4].ColumnName;
                cbc.DisplayMember = this.dt.Columns[4].ColumnName;
                cbc.ValueMember = cbc.DisplayMember;
                cbc.HeaderText = this.dt.Columns[4].ColumnName;
                dataGridView1.Columns.AddRange(cbc);
    但是还是有不行啊。提示错误:不存在名为 性别 的字段。
      

  9.   

    temptable.Columns.Add(new DataColumn("性别",typeof(string)));
    ....
                cb.DataPropertyName = "性别";
                cb.DisplayMember = "性别";
                cb.ValueMember = "性别";
                cb.HeaderText = "性别";