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,我说怎么赋值不起作用呢。
大家都答对了,不过没有办法可以把分数给每一个人。我这有给回答最详细的那位了。
最后不管怎么样,还是谢谢大家的热心 展开
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,我说怎么赋值不起作用呢。
大家都答对了,不过没有办法可以把分数给每一个人。我这有给回答最详细的那位了。
最后不管怎么样,还是谢谢大家的热心 展开
3个回答
展开全部
相信你的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.
祝你成功
欢迎交流。
第一步 设置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.
祝你成功
欢迎交流。
展开全部
在我做的程序中也是这样写的,例如:
this.dgRolePrivilege.Rows[i].Cells["Used"].Value = true;
有用的啊
this.dgRolePrivilege.Rows[i].Cells["Used"].Value = true;
有用的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把checkbox设成只读的,自己在程序里赋值就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询