winform分页案例简单实现方式~

简介: winform分页案例简单实现方式~


最近,四班在做KTV点歌系统,正好需要用到分页的内容,所以今天我就整理整理,写了一个简易的winfrom分页案例,以下是案例截图:

案例分析:窗体加载时,默认显示第一页的内容,当单击“下一页”的按钮时,上面的内容就会换成第二页的内容,点击“上一页”按钮,上面所展示的内容就会换成第一页的内容,所有显示的内容均从数据库中查询显示。

上一页和下一页按钮中间显示的当前页和总页数,在翻页的同时,当前页也会随之变化。

下面说一下实现思路(集合分页):

下面是关键代码:

1.声明的公共变量:

/所有的数据
        List gList = new List();
        //当前页
        int pageIndex = 1;
        //总页数
        int totalPage = 0;
        //页大小
        int pageSize = 4;          DBHelper db = new DBHelper();
2.窗体的加载事件:

private void frmPage_Load(object sender, EventArgs e)
        {
            //清空控件内容
            ClearLabel();
            //查询所有数据
            FindGradeAll();
            //总页数等于集合中的所有数据与页大小之间的计算
            totalPage = gList.Count % pageSize == 0 ? gList.Count / pageSize : gList.Count / pageSize + 1;
            //总页数
            this.lblTotalPage.Text = totalPage.ToString();
            //当前页
            this.lblPage.Text = pageIndex.ToString();
            //分页查询,默认显示第一页的内容
            PageShowGrade(1);

        }
3.查询所有的年级名称放在label中

//查询所有的年级名称放在集合中
        public void FindGradeAll() {
            string sql = "select * from grade";
            SqlDataReader dr = db.ExecuteReader(sql);

            while (dr.Read())
            {
                gList.Add(dr["gname"].ToString());
            }
            dr.Close();
        
        }
4.清空Label中的所有内容

//清空Label中的所有内容
        public void ClearLabel() {
            //获取panel中有多少个控件
            int count = this.panel1.Controls.Count;
            //清空
            for (int i = 0; i < count;i++ ) {
                Label lbl = (Label)this.panel1.Controls[i];
                lbl.Text = "暂无数据";
            }
        }
5.分页显示数据

//分页显示数据
        public void PageShowGrade(int pageIndex) {
            
            for (int i = 0; i < this.panel1.Controls.Count;i++ ) {
                Label lbl = (Label)this.panel1.Controls[i];
                int v = (pageIndex - 1) * pageSize + i;
                lbl.Text = gList[v];
            }
        }
6.下一页按钮

//下一页
        private void button2_Click(object sender, EventArgs e)
        {
            //当前是最后一页
            if (pageIndex == totalPage)
            {
                MessageBox.Show("现在已经是最后一页了");
            }
            else {
                //当前页加1
                pageIndex++;
                //分页查询
                PageShowGrade(pageIndex);
                //更新当前页
                this.lblPage.Text = pageIndex.ToString();
            }
           
        }
7.上一页按钮;

//上一页
        private void button1_Click(object sender, EventArgs e)
        {
           
            if (pageIndex <=1 )
            {
                //默认为第一页
                pageIndex = 1;
                MessageBox.Show("现在已经是第一页了");
            }
            else
            {
                //当前页减1
                pageIndex--;
                //分页查询
                PageShowGrade(pageIndex);
                //更新当前也
                this.lblPage.Text = pageIndex.ToString();
            }
        }
以上就是全部示例说明,你学会了吗?

目录
相关文章
|
小程序 前端开发 iOS开发
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
708 0
微信小程序:多行文本溢出出现多余的文字-webkit-line-clamp
|
11月前
|
消息中间件 存储 JSON
Net使用EasyNetQ简化与RabbitMQ的交互
EasyNetQ是专为.NET环境设计的RabbitMQ客户端API,简化了与RabbitMQ的交互过程。通过NuGet安装EasyNetQ,可轻松实现消息的发布与订阅,支持多种消息模式及高级特性。文中提供了详细的安装步骤、代码示例及基础知识介绍,帮助开发者快速上手。关注公众号“Net分享”获取更多技术文章。
307 1
Net使用EasyNetQ简化与RabbitMQ的交互
|
12月前
|
存储 监控 前端开发
如何实现前端框架数据驱动方式的数据加密存储?
实现前端框架数据驱动方式的数据加密存储需要综合考虑多个因素,包括加密算法的选择、密钥管理、传输安全、服务器端处理等。通过合理的设计和实施,能够有效提高数据的安全性,保护用户的隐私和敏感信息。但需要注意的是,前端加密存储不能完全替代后端的安全措施,后端的安全防护仍然是不可或缺的。
320 53
|
8月前
|
Python
Python如何给视频添加音频和字幕
通过以上方法和代码示例,你可以在Python中成功实现视频的音频和字幕添加。确保理解每一步的实现细节,应用到实际项目中时能有效地处理各种视频编辑需求。
398 20
|
10月前
|
PyTorch 算法框架/工具 芯片
新手入门:DGL在昇腾上的安装问题
本文介绍了在aarch64架构和Python 3.10环境下安装DGL(Deep Graph Library)的过程。首先通过`uname -a`确认硬件架构,接着使用`python --version`检查Python版本。为确保兼容性,从指定链接下载适合的whl包或通过pip安装dgl。过程中遇到了torchdata版本不兼容的问题,通过降级torchdata至0.7.1版本解决。此外,针对NPU芯片适配,重新安装了与CANN 8.0.RC2兼容的torch和torch_npu组件。最终成功导入dgl包并准备进行模型训练验证。
|
安全 Linux 数据安全/隐私保护
在Linux中,SELinux是什么?
在Linux中,SELinux是什么?
|
SQL 数据库
数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)
数据审计 -本福德定律 Benford‘s law (sample database classicmodels _No.6)
279 1
|
12月前
|
机器学习/深度学习 存储 人工智能
政务部门人工智能OCR智能化升级:3大技术架构与4项核心功能解析
本项目针对政务服务数字化需求,建设智能文档处理平台,利用OCR、信息抽取和深度学习技术,实现文件自动解析、分类、比对与审核,提升效率与准确性。平台强调本地部署,确保数据安全,解决低质量扫描件、复杂表格等痛点,降低人工成本与错误率,助力智慧政务发展。
405 0
|
C# UED 开发者
WPF动画大揭秘:掌握动画技巧,让你的界面动起来,告别枯燥与乏味!
【8月更文挑战第31天】在WPF应用开发中,动画能显著提升用户体验,使其更加生动有趣。本文将介绍WPF动画的基础知识和实现方法,包括平移、缩放、旋转等常见类型,并通过示例代码展示如何使用`DoubleAnimation`创建平移动画。此外,还将介绍动画触发器的使用,帮助开发者更好地控制动画效果,提升应用的吸引力。
686 0
|
Ubuntu 编译器 C语言
Ubuntu 源码编译指定版本 make:神秘代码背后的激情冒险,等你来战!
【8月更文挑战第19天】在Ubuntu中编译指定版本的`make`工具是一项高级技巧,能让你针对特定需求定制软件。首先确保已安装`build-essential`等必要组件。下载所需版本源码后,遵循README指南配置与编译。使用`./configure`检测环境,`make`编译,最后`sudo make install`安装。面对问题如缺失依赖或编译选项不当,需耐心解决。对于大型项目,可利用多核加速编译,如`make -j 4`。这一过程虽具挑战,却能显著提升软件性能与功能适配。
252 2