关于DataGridViewComboBoxColumn,添加

Pipi0714 2009-06-19 05:07:09
DataGridViewComboBoxColumn在添加的时候,由于是int它默认是0,但是在DataGridViewComboBoxColumn的Items中并没有这个选项出现错无提示 DataGridViewComboBoxColumn 值无效

请问如何解决?

我发现只要是输入的值在DataGridViewComboBoxColumn的items中不存在就出现这个问题。

但是你的类型要是string不存在这样的问题,可能默认的为null
...全文
655 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NEOGX 2010-07-28
  • 打赏
  • 举报
回复
牛人啊..我试试..!!
imdeveloper 2009-06-20
  • 打赏
  • 举报
回复
你可以参阅微软一站式开发技术框架解决方案中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
Pipi0714 2009-06-20
  • 打赏
  • 举报
回复
2楼,与我的代码没有太多的区别。
只是我的是以BindingList作为数据源,其他的没有区别但是不好用
loveme_001 2009-06-19
  • 打赏
  • 举报
回复
学习学习!!
marson181 2009-06-19
  • 打赏
  • 举报
回复
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
//还是不行可以与我联系
muyebo 2009-06-19
  • 打赏
  • 举报
回复
DataGridViewComboBoxColumn,很頭疼,
可輸入的話還得修改,
手動輸入結束后,我都是往DataGridViewComboBoxColumn的items裏面加一項(如果不存在)
你也可以試試ComboBox,當點擊cell是把ComboBox顯示在所點擊的cell

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧