最近在开发一个 Winform 的项目,在项目中自己写了一个类似于 Web 端的分页管理器 。能力有限,也许还有可以优化的地方,欢迎大家指点。话不多说,奉上源码。
一。新建一个 winform 项目,在 form 页中准备控件如下:
ComboBox (1个) : comboBox_pageSize 用来存放每页允许显示的最大记录条数 ( 属性DropDownStyle : DropDownList) 。
PictureBox (4个) : 用来存放 四个翻页按钮。
TextBox (1个) : textBox_thisPage 用来存放当前页信息。
Label (若干个) : 用来存放其他文字 与 条数 信息。
二。代码实现
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace wcerp.baseSet.authority.personManage
{
public partial class List : Form
{
#region 分页插件
// 初始化分页工具栏
private void page()
{
int allNum = Convert.ToInt32(common.listCounts); // 当前页面全部记录条数
int totalNum = dataGridView1.RowCount; // 当前DGV记录条数
int pageSize = Convert.ToInt32(comboBox_pageSize.Text); // 每页显示条数
int thisPage = 0; // 当前页码
if (server.isEmptyS(textBox_thisPage.Text))
{
thisPage = 1;
}
else
{
thisPage = Convert.ToInt32(textBox_thisPage.Text);
}
// 计算最大页码
float pageNumFloat = (float)allNum / pageSize;
string pageNum = Math.Ceiling(pageNumFloat).ToString();
label_pageNum.Text = pageNum;
// 计算当前页起始记录条数 和 截至记录条数
int startNum = 1 + (thisPage -1) * pageSize;
label_startNum.Text = startNum.ToString();
int endNum = pageSize + (thi