代码如下,求高手指点下怎么设置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);
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);
{
if (dataGridView1.CurrentCell.ColumnIndex == 0) //判断是否ComboBoxColumn所在列
{
ComboBox cb = e.Control as ComboBox;
if (cb != null)
{
cb.SelectedValue=2;//设置默认值
}
}
}
多谢楼上,可是我引用了你的代码后还是不行?另外我绑定的ComboBoxColumn列是在dataGridView1的第二列,第一列是DataGridViewCheckBoxColumn,会不会是和这个有关呢?
改成:if (dataGridView1.CurrentCell.ColumnIndex == 1),才是判断第二列!下标从0开始.
//運算符默認值
foreach (DataGridViewRow cRow in dgvQuery.Rows)
{
cRow.Cells["FieldOrder"].Value = "asc";//排序默認值為生序
cRow.Cells["FieldLogic"].Value = "AND";//邏輯默認值為並且
}
拿兩列都是DataGridViewComboBoxColumn
補充:DataGridViewComboBoxColumn都綁定了DataTable
感谢hanjoe109,默认值显示出来了。
但是还有一点问题,就是当我把鼠标放到我绑定的FieldOrder列时,它就会弹出以下出错信息:
"System.ArgumentException: DataGridviewCoboBoxCell 值无效。
要替换此默认对话框,请处理 DataError 事件。"这是怎么回事呢.虚心请教学习。
设置第2行第5列的默认值为ComboBox中的第一项(Items[0]),此列为DataGridViewComboBoxCell。
搂主可参考下,不知是不是搂主想要的。
<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>