关于获取datagridView获取checkboxcolumn的状态

crazy_fishegg 2012-09-27 02:27:06
设定

DataGridViewCheckBoxColumn col=new DataGridViewCheckBoxColumn();
col.HeaderText = col.Name = "标识";
col.Width = 50;
col.ValueType = typeof(bool);
dgv.Columns.Add(col);
col.DataPropertyName = "标识";

DataGridViewCheckBoxColumn col1=new DataGridViewCheckBoxColumn();
col1.HeaderText = col1.Name = "序号";
col1.Width = 50;
col1.ValueType = typeof(string);
dgv.Columns.Add(col1);
col1.DataPropertyName = "序号";

dgv.Rows.Add(new object[] { false, 1});
dgv.Rows.Add(new object[] { false, 2});
dgv.Rows.Add(new object[] { false, 3});
dgv.Rows.Add(new object[] { false, 4});


此时,界面中就回显示第一列是checkbox列,把checkbox全部改为选中,此时获取第一行第一列的value,为什么都不全是true?
我用的是这个方法

List<DataGridViewRow> rows = new List<DataGridViewRow>();
foreach (DataGridViewRow row in dgv.Rows)
{
if ((bool)row.Cells[0].Value)
{
rows.Add(row);
}
}

为什么rows.count不是4??
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
熙风 2012-09-27
  • 打赏
  • 举报
回复
  List<DataGridViewRow> rows = new List<DataGridViewRow>();

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];
if ((Boolean)chk.EditedFormattedValue == true)
{
rows.Add(row);
}

}
bdmh 2012-09-27
  • 打赏
  • 举报
回复
你确认dgv.Rows 不是4条?
不全是true是不是 因为你虽然点击了,但是还没有将值提交,你可以用dataGridView1.Rows[0].Cells[0].EditedFormattedValue来获取

109,878

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧