我的DataGridView绑定了一个对象,对象中有bool值,所以在DataGridView中有一列被自动生成了checkbox类型的复选框。
问题:我想在checkbox上,只能选中一个checkbox,而不是多选。
请问怎么实现
DataGridView形式:
Name(文本框) 选择(复选框) 备注(文本框)
张三 无
李四 √ 无
王五
可以添加行
我的思路for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if(this.datagridview1.Rows[e.RowIndex].Cells[1].Value.ToString() == "True")
{
//其他的 checkbox不能选,不会实现
}
}请指点。
问题:我想在checkbox上,只能选中一个checkbox,而不是多选。
请问怎么实现
DataGridView形式:
Name(文本框) 选择(复选框) 备注(文本框)
张三 无
李四 √ 无
王五
可以添加行
我的思路for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if(this.datagridview1.Rows[e.RowIndex].Cells[1].Value.ToString() == "True")
{
//其他的 checkbox不能选,不会实现
}
}请指点。
解决方案 »
- c#基于SAPI的语音识别问题(添加的.xml语法,因为只要识别少量的词汇表)
- 写了一个小游戏——记忆围棋
- Bitmap 初始化的奇怪问题
- NotSupportedException c#调用c++动态链接库问题,已经半个月
- 如何将32位深度的Bitmap转换为8位
- return string.Format("{0:yyMMddhhmmss}", DateTime.Now);
- 有asp.net的类加密候,怎么解密
- 在客户端不刷新页面即时更新数据,除了使用 java script 外,还有其他好方法吗?
- C# 读串口数据
- splitter怎么用?
- 求C#实现在window mobile播放视频(DirectShow)的源代码
- 复杂的多表连接筛选
for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if(i <> e.RowIndex)
{
this.datagridview1.Rows[i].Cells[1].Value = "false";
}
}
for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if(this.datagridview1.Rows[i].Cells[1].Value.ToString() == "True")
{
if(i <> e.RowIndex)
{
this.datagridview1.Rows[e.RowIndex].Cells[1].Value = "false";
}
} }
for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if(i <> e.RowIndex)
{
this.datagridview1.Rows[i].Cells[1].Value = false;
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
DataGridViewCheckBoxCell cbh = (DataGridViewCheckBoxCell)this.dgvCommon.Rows[count].Cells[1];
this.datagridview1.Rows[count].Cells[1].Value = false;
}
DataGridViewCheckBoxCell cbh = (DataGridViewCheckBoxCell)this.dgvCommon.Rows[e.RowIndex].Cells[1];
this.dataGridView1.Rows[e.RowIndex].Cells[1].Value = true;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
for (int i = 0; i < this.datagridview1.Rows.Count; i++)
{
if (count != e.RowIndex)
{
DataGridViewCheckBoxCell cbh = (DataGridViewCheckBoxCell)this.dgvCommon.Rows[count].Cells[1];
this.datagridview1.Rows[count].Cells[1].Value = false;
}
else
{
DataGridViewCheckBoxCell cbh = (DataGridViewCheckBoxCell)this.dgvCommon.Rows[e.RowIndex].Cells[1];
this.dataGridView1.Rows[e.RowIndex].Cells[1].Value = true;
}
}
}
在dgvDisplay_CellEndEdit事件里this.dataGridView1.EndEdit();
if (string.IsNullOrEmpty(this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString()) &&
(e.RowIndex != this.dataGridView1.Rows.Count - 1))
{
this.dataGridView1.Rows.Remove(this.dataGridView1.Rows[e.RowIndex]);
}
如果Name里的内容删除,当编辑完单元格失去焦点时,该行要删除,怎么实现,上面是我的代码,不过出错了。报:未将对象实例化。
请解决
this.dataGridView1.EndEdit();
然后再在dgvDisplay_CellEndEdit事件里写你其它的删除代码
你试试
我在CellLeave事件里已经加了this.dataGridView1.EndEdit();
在dataGridView1_CellEndEdit事件里,也加了this.dataGridView1.EndEdit();
都不行,都是报:未将对象实例化。 还有个问题,不知你在#6和#8楼上,使用的count是什么值?是this.datagridview1.Rows.Count这个吗?
dgvCommon应该是datagridview1吧