You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现C#中DataGridView行的循环逐行选中(替代随机选中)

修改方案

要实现循环逐行选中的逻辑,核心是记录当前选中的行索引,每次执行时计算出下一行的索引并切换,具体修改如下:

  1. 在窗体或类的成员变量中添加一个整数,用于保存当前选中的行索引(初始值设为-1,表示未选中过任何行):
private int _currentSelectedRowIndex = -1;
  1. 替换原随机选行的代码,改为循环计算下一行的逻辑:
int rowMax = dataSender.Rows.Count;
// 无数据时直接返回,避免索引越界
if (rowMax == 0) return;

// 计算下一行索引:通过取模实现循环,自动从最后一行回到第一行
_currentSelectedRowIndex = (_currentSelectedRowIndex + 1) % rowMax;

int targetRow = _currentSelectedRowIndex;
// 触发单元格点击事件并设置当前单元格
var arg = new DataGridViewCellEventArgs(0, targetRow);
dataSender_CellClick(dataSender, arg);
dataSender.CurrentCell = dataSender.Rows[targetRow].Cells[0];

关键逻辑说明

  • (_currentSelectedRowIndex + 1) % rowMax是循环核心:比如3行数据时,索引会按0→1→2→0→1...的规律自动循环,无需额外分支判断。
  • 类成员变量_currentSelectedRowIndex会在每次执行后更新,确保下次能准确定位下一行。
  • 增加rowMax == 0的判断,避免DataGridView无数据时出现异常。

内容的提问来源于stack exchange,提问作者Oleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:55:27