C# .NET WinForm,datagridview 中的DataGridViewComboBoxColumn怎么设置默认值?

pgdoryoku 2008-05-20 10:25:45
代码如下,求高手指点下怎么设置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);
...全文
3167 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijinweicool 2011-11-25
  • 打赏
  • 举报
回复

<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>
dai_oath 2010-10-14
  • 打赏
  • 举报
回复
顶顶 呵呵
ggxboy 2010-10-05
  • 打赏
  • 举报
回复
budong
cdsnvip 2009-08-31
  • 打赏
  • 举报
回复
也进来学习下
zhayabusay 2009-03-12
  • 打赏
  • 举报
回复
dataGridView1[4, 2].Value = ((DataGridViewComboBoxCell)dataGridView1[4, 2]).Items[0].ToString();
设置第2行第5列的默认值为ComboBox中的第一项(Items[0]),此列为DataGridViewComboBoxCell。
搂主可参考下,不知是不是搂主想要的。
  • 打赏
  • 举报
回复
也进来学习下
pgdoryoku 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hanjoe109 的回复:]
我是直接指定單元格的值
//運算符默認值
foreach (DataGridViewRow cRow in dgvQuery.Rows)
{
cRow.Cells["FieldOrder"].Value = "asc";//排序默認值為生序
cRow.Cells["FieldLogic"].Value = "AND";//邏輯默認值為並且
}
拿兩列都是DataGridViewComboBoxColumn
[/Quote]

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

这是怎么回事呢.虚心请教学习。
liulcster 2008-05-21
  • 打赏
  • 举报
回复
ding
hanjoe109 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hanjoe109 的回复:]
我是直接指定單元格的值
//運算符默認值
foreach (DataGridViewRow cRow in dgvQuery.Rows)
{
cRow.Cells["FieldOrder"].Value = "asc";//排序默認值為生序
cRow.Cells["FieldLogic"].Value = "AND";//邏輯默認值為並且
}
拿兩列都是DataGridViewComboBoxColumn
[/Quote]

補充:DataGridViewComboBoxColumn都綁定了DataTable
hanjoe109 2008-05-21
  • 打赏
  • 举报
回复
我是直接指定單元格的值
//運算符默認值
foreach (DataGridViewRow cRow in dgvQuery.Rows)
{
cRow.Cells["FieldOrder"].Value = "asc";//排序默認值為生序
cRow.Cells["FieldLogic"].Value = "AND";//邏輯默認值為並且
}
拿兩列都是DataGridViewComboBoxColumn
pgdoryoku 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ydsunny 的回复:]
呵呵,你把我代码中的这一句:if (dataGridView1.CurrentCell.ColumnIndex == 0)
改成:if (dataGridView1.CurrentCell.ColumnIndex == 1),才是判断第二列!

下标从0开始.
[/Quote]

还是不行,默认项还是空的..
九章落地 2008-05-21
  • 打赏
  • 举报
回复
呵呵,你把我代码中的这一句:if (dataGridView1.CurrentCell.ColumnIndex == 0)
改成:if (dataGridView1.CurrentCell.ColumnIndex == 1),才是判断第二列!

下标从0开始.
peterb 2008-05-20
  • 打赏
  • 举报
回复
或者设置其绑定的数据源对应列的默认值也可以实现 如DataTable
九章落地 2008-05-20
  • 打赏
  • 举报
回复
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;//设置默认值
}
}
}
BD_zhu 2008-05-20
  • 打赏
  • 举报
回复
VS 2005里面好象很方便啊
pgdoryoku 2008-05-20
  • 打赏
  • 举报
回复
自己顶下.
pgdoryoku 2008-05-20
  • 打赏
  • 举报
回复
还是不行啊,求高手们指教.
万分感谢了。
pgdoryoku 2008-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ydsunny 的回复:]
ComboBoxColumn没不支持此功能,但可通过转换成ComboBox实现:

C# code
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 0) //判断是否ComboBoxColumn所在列
{
ComboBox cb = e.Control as ComboBox;
if (cb != null)

[/Quote]

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

110,533

社区成员

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

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

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