DataGridViewComboBoxColumn在添加的时候,由于是int它默认是0,但是在DataGridViewComboBoxColumn的Items中并没有这个选项出现错无提示 DataGridViewComboBoxColumn 值无效请问如何解决?我发现只要是输入的值在DataGridViewComboBoxColumn的items中不存在就出现这个问题。但是你的类型要是string不存在这样的问题,可能默认的为null

解决方案 »

  1.   

    DataGridViewComboBoxColumn,很頭疼,
    可輸入的話還得修改,
    手動輸入結束后,我都是往DataGridViewComboBoxColumn的items裏面加一項(如果不存在)
    你也可以試試ComboBox,當點擊cell是把ComboBox顯示在所點擊的cell
      

  2.   

            private void proAddCangKuList() //修改于2009-5-24 
            { 
                DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn(); 
                string strCangkuSql; 
                int iCKnum; 
                strCangkuSql = "Select * From cangku Order By ckid "; 
               //如果未读入仓库信息在此读入。 
                if (qbDataSet1.Tables.IndexOf("cangku") < 0) 
                { 
                    adapterMX = new SqlDataAdapter(strCangkuSql, FrmMain.sqlConnentionText); 
                    adapterMX.SelectCommand.CommandText = strCangkuSql; 
                    adapterMX.Fill(qbDataSet1, "cangku"); 
                } 
                //删除原有仓库列,改用下式仓库选择 
                dataGridView1.Columns.Remove("ckid"); 
                comboboxColumn.DataPropertyName = "ckid"; //指定数据性质名称,用于绑定数据表名的值 
                comboboxColumn.Name = "ckid"; //此下拉框名称 
                comboboxColumn.DataSource = qbDataSet1.Tables["cangku"]; 
                comboboxColumn.ValueMember = "ckid"; //指定存取值,用户选择的一项,转化为需存取的值 
                comboboxColumn.DisplayMember = "ckname"; //显示值,供用户选择 
                //如果增加到指定列之前,用下面的语句;
                 iCKnum = dataGridView1.Columns["在此列前插入"].Index + 1; 
                //dataGridView1.Columns.Insert(iCKnum, comboboxColumn); 
                //如果增加至最后一列用下面的语句; 
                dataGridView1.Columns.Add(comboboxColumn); 
                dataGridView1.Columns["ckid"].HeaderText = "仓库名称"; 
            } //转载请说明出处及原创人Marson. 
    //http://user.qzone.qq.com/463704238/blog/1243248500
    //还是不行可以与我联系
      

  3.   

    2楼,与我的代码没有太多的区别。
    只是我的是以BindingList作为数据源,其他的没有区别但是不好用
      

  4.   

    你可以参阅微软一站式开发技术框架解决方案中CSWinFormDataGridView代码示例。 
    http://cfx.codeplex.com CSWinFormDataGridView 
    自定义DataGridView的sample大全。收罗了MSDN论坛里最经常被问到的自定义场景。比如,场景1. 使用除标准DataGridView编辑控件(TextBox, CheckBox, ComboBox, Button, Link, Image)之外的其他控件进行编辑,如MaskedTextBox, DateTimePicker控件等。这个需求一般可以通过两种方法来解决,一种是自定义个一个DataGridView列,详见 CustomDataGridView 这个例子;另一种是在DataGridView进入编辑状态时,将所需的编辑控件放置于当前编辑单元格中,在编辑结束的时候将该控件隐藏,详见 EditingControlHosting 这个例子。场景2. 大数据量显示。常态下在DataGridView控件中显示超大数据量效果不佳,为增强超大数据量的显示效果,一般有以下两种方法: 一是分页显示,详见 DataGridViewPaging 这个例子; 二是使用VirtualMode,在数据需要显示时才从数据库中读取,详见 JustInTimeDataLoading这个例子。场景3. 多层表头。 有时为了使数据显示得更有组合性,我们会希望能显示多层的表头,实现方法详见 MultipleLayeredColumnHeader 这个例子。 
    谢谢 
    All-In-One Code Framework Project Group 
    http://cfx.codeplex.com