场景
Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度:
Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度_霸道流氓气质的博客-CSDN博客
在上面讲了设置DataGridView的样式设置
C#中实现计时器功能(定时任务和计时多长时间后执行某方法):
C#中实现计时器功能(定时任务和计时多长时间后执行某方法)_c# 每一秒减1_霸道流氓气质的博客-CSDN博客
以及定时器的使用之后,怎么利用定时器实现DataGridView自动分页显示。
注:
博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
实现
1、分页算法实现
/// <summary>
/// DataGridView 分页显示
/// </summary>
/// <param name="dataCount"></param>
/// <returns>dataGridView 要显示的第一行的索引</returns>
private int pagingDisplay(int dataCount) {
pageCount = dataCount % pageSize > 0 ? dataCount / pageSize + 1 : dataCount / pageSize;
int index = currentPage * pageSize;
currentPage++;
if (currentPage >= pageCount)
{
currentPage = 0;
}
return index;
}
分页算法需要的参数有数据总条数dataCount作为参数进行传递、每页显示的条数pageSize、当前页数currentPage、
总页数pageCount。
注意这里的总页数要根据数据总条数与每页显示条数求余数是否大于0做判断。
这里用到的变量需要提前声明
//数据总条数
int dataCount = 0;
//当前页
int currentPage = 0;
//每页显示的数量
int pageSize = 5;
//总页数
int pageCount = 0;
另外index是dataGridView要从哪一条开始显示的索引下标。
2、定时器分页实现
//分页显示数据定时器
_timerOfDataGridView.Interval = scheduleIntervalOfDataGridView;
_timerOfDataGridView.Tick += _timer_Tick_DataGridView;
_timerOfDataGridView.Start();
定时器具体实现方法
private void _timer_Tick_DataGridView(object sender, EventArgs e)
{
if (dataGridView1.RowCount > 0 && dataCount > 0) {
//定时分页显示
int index = pagingDisplay(dataCount);
dataGridView1.FirstDisplayedScrollingRowIndex = index;
}
}
获取下标之后就可以通过
dataGridView1.FirstDisplayedScrollingRowIndex = index;
设置要显示的第一行的索引。
注意这里的dataCount 要在设置数据源时要对其进行赋值,然后在分页定时器执行前
要先进行判断,避免dataCount为0出错等。
if (results.Count>0) {
dataCount = results.Count;
//填充数据源
setDataGrivdViewData(results);
//设置标题
setDataGridViewHeader();
//设置宽度高度
setDataGridViewWidth();
setDataGridViewHeight();
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/135800.html