winform中datagridview中的checkbox选中问题

我在datagridview中的checkbox列,然后绑定数据后,其中有两列quantity1和quanlity2,现在要判断怎么选中的问题1、当该行quantity1... 我在datagridview中的checkbox列,然后绑定数据后,其中有两列 quantity1 和quanlity2 ,现在要判断怎么选中的问题

1、当该行quantity1 = 0 时,点击该checkbox后,弹出对话框,提示不能选中。该checkbox点击后仍没有选中;

2、当该行quantity1>0 时,弹出对话框,让用户选择一个数,然后返回更新quanlity2。该checkbox选中。

3、当该checkbox已选中,然后再点击,则变为没有选中。

我现在已经实现问题3了,也能判断该checkbox是否为选中。但是如问题1,不管我怎么设置,它还是会选中。
对于问题2,我点击后,会选中,可是当quanlity2更新后,就变为没有选中了。 每次需要点击两次,才能改变选中状态....

然后感觉 this.datagridview1.row[e.rowindex].cell["check_column"].value=true 或者false 没有用。你只要点击了,它会自己赋值,你的赋值不起作用
请高手指点,一定高分相赠
谢谢大家,问题解决了,原因就是没有把checkboxcolumn设置为readonly,我说怎么赋值不起作用呢。

大家都答对了,不过没有办法可以把分数给每一个人。我这有给回答最详细的那位了。
最后不管怎么样,还是谢谢大家的热心
展开
 我来答
7146362
2009-05-13 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:23.4万
展开全部
相信你的datagridview1已经设置好了

第一步 设置check_column.ReadOnly=true

第二步 添加dataGridView1.CellEnter事件

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
int n = e.RowIndex;
if (e.ColumnIndex == 0)
{
if (dataGridView1.Rows[n].Cells[1].Value.ToString() == "a")
{
dataGridView1.Rows[n].Cells[0].Value = true;
}
else
{
dataGridView1.Rows[n].Cells[0].Value = false;
}
}
}

上面的是我的程序里面的代码,虽然判断条件不一样,但大同小异。

我的程序运行成功。

这里你的第三个问题可能要改掉,你可以先判断你的value是否为true然后再赋值

第一个问题很好解决只要把我上面代码中的"a"换成"0"然后show一个MessageBox就可以了,第二个问题同理。

我想你自己没处理好的关键一步肯定是没设置check_column.ReadOnly.

祝你成功
欢迎交流。
miniapp16c22a39d331
2009-05-13 · TA获得超过427个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:171万
展开全部
在我做的程序中也是这样写的,例如:

this.dgRolePrivilege.Rows[i].Cells["Used"].Value = true;

有用的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f43968375
2009-05-13 · TA获得超过434个赞
知道小有建树答主
回答量:591
采纳率:0%
帮助的人:521万
展开全部
你把checkbox设成只读的,自己在程序里赋值就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式