代码如下,求高手指点下怎么设置DataGridViewComboBoxColumn的默认值,谢谢
DataGridViewComboBoxColumn SignsCondition = new DataGridViewComboBoxColumn();
            SignsCondition.Items.Insert(0, "签收时间");
            SignsCondition.Items.Insert(1, "签收时间");
            SignsCondition.Items.Insert(2, "承运时间");
            SignsCondition.Items.Insert(3, "结算公司");
            SignsCondition.DataPropertyName = SignsCondition.Items[0].ToString();
            datagridview.Columns.Add(SignsCondition);

解决方案 »

  1.   

    ComboBoxColumn没不支持此功能,但可通过转换成ComboBox实现:private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                if (dataGridView1.CurrentCell.ColumnIndex == 0) //判断是否ComboBoxColumn所在列 
                {
                    ComboBox cb = e.Control as ComboBox;
                    if (cb != null)
                    {                    
                        cb.SelectedValue=2;//设置默认值
                    }
                }
            }
      

  2.   

    或者设置其绑定的数据源对应列的默认值也可以实现 如DataTable
      

  3.   


    多谢楼上,可是我引用了你的代码后还是不行?另外我绑定的ComboBoxColumn列是在dataGridView1的第二列,第一列是DataGridViewCheckBoxColumn,会不会是和这个有关呢?
      

  4.   

    呵呵,你把我代码中的这一句:if (dataGridView1.CurrentCell.ColumnIndex == 0)
    改成:if (dataGridView1.CurrentCell.ColumnIndex == 1),才是判断第二列!下标从0开始.
      

  5.   

    我是直接指定單元格的值
                   //運算符默認值
                    foreach (DataGridViewRow cRow in dgvQuery.Rows)
                    {
                        cRow.Cells["FieldOrder"].Value = "asc";//排序默認值為生序
                        cRow.Cells["FieldLogic"].Value = "AND";//邏輯默認值為並且
                     }
    拿兩列都是DataGridViewComboBoxColumn
      

  6.   


    補充:DataGridViewComboBoxColumn都綁定了DataTable
      

  7.   


    感谢hanjoe109,默认值显示出来了。
    但是还有一点问题,就是当我把鼠标放到我绑定的FieldOrder列时,它就会弹出以下出错信息:
    "System.ArgumentException: DataGridviewCoboBoxCell 值无效。
    要替换此默认对话框,请处理 DataError 事件。"这是怎么回事呢.虚心请教学习。
      

  8.   

     dataGridView1[4, 2].Value = ((DataGridViewComboBoxCell)dataGridView1[4, 2]).Items[0].ToString(); 
     设置第2行第5列的默认值为ComboBox中的第一项(Items[0]),此列为DataGridViewComboBoxCell。
     搂主可参考下,不知是不是搂主想要的。
      

  9.   

     
    <code>
    if (dgr.Cells[5] is DataGridViewComboBoxCell)
                    {
                        DataGridViewComboBoxCell cbocell = dgr.Cells[5] as DataGridViewComboBoxCell;
                        if (cbocell != null)
                        {
                            RS_SysRuleCboItem def = new RS_SysRuleCboItem(rules[1]);//设置默认值
                            for (int j = 1; j < rules.Length; j++)
                            {//绑定数据
                                if(j==1)
                                {                                
                                    cbocell.Items.Add(def);
                                }
                                else
                                cbocell.Items.Add(new RS_SysRuleCboItem(rules[j]));
                                
                            }
                            cbocell.DisplayMember = "DisplayMember";
                          dgr.Cells[5].Value=def;//绑定默认值
                           
                        }                   
                                        }
    </code>