请高手帮忙,我在datagridview控件中添加了combobox控件列,但是初始化时无法显示combobox控件中的内容.combobox控件是通过DataGridViewComboBoxColumn 类创建的.

解决方案 »

  1.   

    初始化时无法显示combobox控件中的内容,具体点,不知道你要表达什么现象
      

  2.   

    就是在窗体启动时,首先为datagridview控件的combobox列对象绑定数据源,但是,我在为datagridview绑定数据源时,combobox里面的数据显示不出来,必须要点击combobox列手动选择后内容才出来.不知道这样描述是否清楚?
      

  3.   

    加上这句试试:cbcm1.DataPropertyName = "数据库中的 字段";
    还有麻烦你贴一下DataGridViewComboBoxColumn的代码
      

  4.   

    this.dataGridView1.Columns.Insert(9, newColumn);
                newcom = new DataGridViewComboBoxColumn(); //新加                                   this.dataGridView1.Columns.Insert(10, newcom);
                newcom.HeaderText = "批准标示";
                DataTable dt = Fillcmb();
                if (dt.Rows.Count > 0)
                {
                    newcom.DataSource = dt;
                    newcom.ValueMember = "frgkz";
                    newcom.DisplayMember = "fkztx";
                    //  if (newcom.Items.Count > 0)
                    //  { newcom.Items[0] = true; }                
                }
                newcom.Name = "info";
               // newcom.DataPropertyName = "fkztx";//将ComboBox列的单元格的实际值绑定到DataGridView控件本身的数据源.
                newcom.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton;
    为了描述方便,我截取的关键部分代码,设置DataPropertyName这个属性没用的,有个办法可以实现,就是调用datagridview控件的EditingControlShowing()事件,但是,在调用时不知道怎么传参数.还请多多指教哦!
      

  5.   

    用displaymember 和 valuemember 比较麻烦,你要保证你添加的字段和你想要显示的字段的数据类型一致
    如果你对valuemember 没有要求的话就用下面的方法。
    真是不好意思,让你贴代码,没能给出好的答案。
       DataGridViewComboBoxColumn cbcm1 = new DataGridViewComboBoxColumn();
                cbcm1.HeaderText = "测试";
                cbcm1.Items.Clear();            
                string[] array = new string[ds.Tables[0].Rows.Count];
                for (int i = 0; i < array.Length; i++)
                {
                    array[i] = ds.Tables[0].Rows[i]["name"].ToString();
                }
                cbcm1.Items.AddRange(array);
                cbcm1.DataPropertyName = "数据库语句字段名";
                //美化
                cbcm1.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
                cbcm1.DisplayStyleForCurrentCellOnly = true;
                gridProject.Columns.Insert(5, cbcm1);
      

  6.   

    非常感谢两位的帮助,现在问题解决了,我是通过给控件的value属性赋值实现的.this.datagridview.rows[i].cells[10].value="1";//1就是对应的value值.