Sb.6:自定义分页控件-winform
背景:项目需要查询一个数据信息,并以报表形式展示,网上找了好几个都不太满意,感觉不是很难的东西,所以就写个博客,放个Git连接,方便同志们使用
需求:封装一个控件,具备“上一页”、“下一页”、“首页”、“尾页”按钮,并能够根据当前查询的分页数据显示总共多少页,当前处于第几页。按钮触发后如果符合条件需要切换页面将事件发送出去。
做法:1、新建一个UserControl,插入几个按钮及label,合理布局一下;(布局如下)
2、对四个按钮添加 MouseClick事件,并实现点击业务,代码如下:
private void Button_MouseClick(object sender, MouseEventArgs e) { try { if (PageCount == 0) return; Button button = (Button)sender; int tag = int.Parse(button.Tag.ToString()); switch (tag) { case -2: if (CurrentPageNub == 1 || CurrentPageNub == 0) { return; } CurrentPageNub = 1; break; case -1: if (CurrentPageNub == 1 || CurrentPageNub == 0) { return; } CurrentPageNub -= 1; break; case 1: if (CurrentPageNub == PageCount || CurrentPageNub == 0) { return; } CurrentPageNub += 1; break; case 2: if (CurrentPageNub == PageCount || CurrentPageNub == 0) { return; } CurrentPageNub = PageCount; break; default: break; } DelCtrlHasChange(); ShowPageTip(); } catch (Exception ex) { throw ex; } }
public void ShowPageTip() { try { this.Invoke(new Action(() => { this.PageIndex.Text = $"第{CurrentPageNub}页/共{PageCount}页"; })); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
其中 tag 是前面添加的四个按钮的Tag;
3、DelCtrlHasChange方法是发送控件变化的事件,当页码发生变化的时候通知订阅方;
4、其实就这么简单。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?