c# 在DataGridView控件中动态添加DataGridViewComboBoxCell单元格控件问题

privatevoiddataGridView1_CellMouseClick(objectsender,DataGridViewCellMouseEventArgse)... private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
DataGridViewComboBoxCell comcell = new DataGridViewComboBoxCell();
String s = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
comcell.Value = s;

string[] strValue = new string[] { "True", "False", "北京", "上海", "南京" };
comcell.Items.AddRange(strValue);

dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] = comcell;
}

private void dataGridView1_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
DataGridViewTextBoxCell tbcell = new DataGridViewTextBoxCell();
string s = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

tbcell.Value = s;
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] = tbcell;
}
红圈位置组合框点开,又立即缩回,导致无法选择数据!纠结啊!
表格的数据源是DataSet,不绑定外部数据:
dataGridView1.DataSource = dataSet1.Tables[0];
展开
 我来答
cooke1234
2013-06-09 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3537万
展开全部
不要在click中写,应该在Enter事件中写。Enter和Leave是一对。
追问
用Enter不可行,在选中单元格前,鼠标要经过若干Cell。
现改为:用CellDoubleClick替换CellMouseClick倒是可以,但操作明显不方便。而且达不到防止用户输入非法数据的效果。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式