Winform/Csharp中使用定时器+分页算法实现DataGridView自动分页显示(模拟大屏切换效果)

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Winform/Csharp中使用定时器+分页算法实现DataGridView自动分页显示(模拟大屏切换效果),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

场景

Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度:

Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度_霸道流氓气质的博客-CSDN博客

在上面讲了设置DataGridView的样式设置

C#中实现计时器功能(定时任务和计时多长时间后执行某方法):

C#中实现计时器功能(定时任务和计时多长时间后执行某方法)_c# 每一秒减1_霸道流氓气质的博客-CSDN博客

以及定时器的使用之后,怎么利用定时器实现DataGridView自动分页显示。

Winform/Csharp中使用定时器+分页算法实现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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!