关于GRIDVIEW 选中行的问题

cato00o 2010-08-25 09:53:10
我在gridview中的第一行为checkbox
public List<ListRecord> SelectChecked()
{
List<ListRecord> list = new List<ListRecord>();
foreach (DataGridViewRow dr in dgvExport.Rows)
{
DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)dr.Cells[0];

if (cbx.Selected == true)
{
ListRecord lr = new ListRecord();
// lr.RecordingFileName
lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem;
//把选中行的对象
list.Add(lr);
}

}
return list;

}
总是提示我索引越界,[cbx.RowIndex]这里面的值就是当前行的索引。但为什么总提示越界呢?
...全文
104 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
大地蚁人 2010-08-25
  • 打赏
  • 举报
回复
if(e.RowIndex!=-1)

+
try{}
catch { }
cato00o 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 foryouwife 的回复:]
lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem;
这句话越界了。
dgvExport.SelectedRows这个已经是选中的行了。后面的 [cbx.RowIndex]应该是列号。你这里
cbx.RowIndex应该是行号。行号一旦比较大。肯定是越界了。
[/Quote]
不行啊我把下标那改成列的下标还是越界啊,难道是逻辑不对?
laichunlin 2010-08-25
  • 打赏
  • 举报
回复
lr = (ListRecord)dgvExport.Rows[cbx.RowIndex].DataBoundItem;
wangcaidpjxwq 2010-08-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 foryouwife 的回复:]
lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem;
这句话越界了。
dgvExport.SelectedRows这个已经是选中的行了。后面的 [cbx.RowIndex]应该是列号。你这里
cbx.RowIndex应该是行号。行号一旦比较大。肯定是越界了。
[/Quote]
为啥你的行动那么迅速。。。。。。。。。。。。。。。。我以后要练习打字。
对了。像你这样的高手。去我的帖子里面看看。帮我解决一下问题啊。我提的问题没人看。
http://topic.csdn.net/u/20100825/09/03fb359d-51d9-41d4-a86b-9cbc5a1e775b.html?seed=1338331056&r=67918894
关于内存溢出的。还没找到解决办法
wangcaidpjxwq 2010-08-25
  • 打赏
  • 举报
回复
I see,看你这句代码:lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem。这里你是从你已选择的行里面找你相对于整个datagridview里面的的行数。肯定是越界的。因为你SelectedRows可能只有1行。
foryouwife 2010-08-25
  • 打赏
  • 举报
回复
lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem;
这句话越界了。
dgvExport.SelectedRows这个已经是选中的行了。后面的 [cbx.RowIndex]应该是列号。你这里
cbx.RowIndex应该是行号。行号一旦比较大。肯定是越界了。
cato00o 2010-08-25
  • 打赏
  • 举报
回复
cbx.RowIndex =2 我选的第3行数据, 索引是从零开始
这个方法写在按钮事件里的
Peter200694013 2010-08-25
  • 打赏
  • 举报
回复
断点调试:cbx.RowIndex值为多少?
q107770540 2010-08-25
  • 打赏
  • 举报
回复
lr = (ListRecord)dgvExport.SelectedRows[cbx.RowIndex].DataBoundItem;
==========
lr = (ListRecord)dr .DataBoundItem;
wangcaidpjxwq 2010-08-25
  • 打赏
  • 举报
回复
你是在哪里引用的这个方法?

111,092

社区成员

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

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

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