DataGridView翻页(WinForm)
思想:
将DataGridView界面设置成显示固定条数的大小,比如要显示10条数据,就将DataGridView设成只能显示10条数据的大小。根据设置FirstDisplayedScrollingRowIndex属性,实现翻页效果。(实际上,这种实现方式只是将数据隐藏了,翻页时将要显示的数据放到第一行的位置,让人看起来就像是翻页了……)
FirstDisplayedScrollingRowIndex属性:获取或设置某一行的索引,该行是显示在 DataGridView 上的第一行。
实现:

private void Form1_Load(object sender, EventArgs e)
{
int intMod, dgr;
dataGridView2.ScrollBars = System.Windows.Forms.ScrollBars.None;//先让垂直滚动条消失
dgr = dataGridView2.RowCount-1;//取出DGV的行数,为什么要减一是因为它总是多出一行给你编辑的所以那行也占用一行的空间
if (dgr %10 == 0) //进行取模
{ intMod = 0; }
else
{
intMod = 1;
}
for (int i = 1; i <= dgr / 10+intMod; i++) //主要时这个for循环将表一共分为几页添加到comboBox
{
comboBox2.Items.Add("第" + i + "页");
}
comboBox2.SelectedIndex = 0; //默认选中第一个
}
然后在comboBox1_SelectedValueChanged事件里面添加下面代码
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
dataGridView2.FirstDisplayedScrollingRowIndex = comboBox2.SelectedIndex * 10;
}
{
int intMod, dgr;
dataGridView2.ScrollBars = System.Windows.Forms.ScrollBars.None;//先让垂直滚动条消失
dgr = dataGridView2.RowCount-1;//取出DGV的行数,为什么要减一是因为它总是多出一行给你编辑的所以那行也占用一行的空间
if (dgr %10 == 0) //进行取模
{ intMod = 0; }
else
{
intMod = 1;
}
for (int i = 1; i <= dgr / 10+intMod; i++) //主要时这个for循环将表一共分为几页添加到comboBox
{
comboBox2.Items.Add("第" + i + "页");
}
comboBox2.SelectedIndex = 0; //默认选中第一个
}
然后在comboBox1_SelectedValueChanged事件里面添加下面代码
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
dataGridView2.FirstDisplayedScrollingRowIndex = comboBox2.SelectedIndex * 10;
}
以上就让DGV以一页十行的效果来显示了
网上找到的方法,同时也可以使用存储过程分页来实现..本人不太熟悉,所以等一会熟悉的时候补上=,=
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 2025成都.NET开发者Connect圆满结束