Windows Form 分页。
其实功能实现很简单。我做的是一个通用的分页控件。项目时间很紧,可能有点粗糙。欢迎大家斧正。不说了直接贴代码吧。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Common;
using System.Collections; namespace Common
{
public partial class WinFormPager : UserControl
{
public event EventHandler PageChanged; //事件:控件的当前页码发生变更。
private int pageSize;
private int curPage;
private int pageCount;
public WinFormPager()
{
InitializeComponent();
} private void WinFormPager_Load(object sender, EventArgs e)
{
}
/// <summary>
/// [属性]每页显示记录数。
/// </summary>
public int PageSize
{
get
{
if (pageSize <= )
{
pageSize = ;
}
return pageSize;
}
set
{
pageSize = value;
}
} /// <summary>
/// 当前页数
/// </summary>
public int CurPage
{
get
{
if (curPage <= )
{
curPage = ;
}
return curPage;
}
set
{
curPage = value;
if (PageChanged != null)
{
SafeRaise.Raise(PageChanged,null);//触发当件页码变更事件。
}
}
}
/// <summary>
/// [属性]总页数。
/// </summary>
public int PageCount
{
get
{
if (RecordCount > )
{
int pageCount = RecordCount / PageSize;
if (RecordCount % PageSize == )
{
pageCount = RecordCount / PageSize;
} else
{
pageCount = RecordCount / PageSize + ;
}
return pageCount;
}
else
{
return ;
}
}
set
{
pageCount = value;
}
} /// <summary>
/// [属性]总记录数。
/// </summary>
public int RecordCount
{
get;
set;
} /// <summary>
/// [属性]相对于当前页的上一页
/// </summary>
public int PrevPage
{
get
{
if (CurPage > )
{
return CurPage - ;
}
return ;
}
} /// <summary>
/// [属性]相对于当前页的下一页
/// </summary>
public int NextPage
{
get
{
if (CurPage < PageCount)
{
return CurPage + ;
}
return PageCount;
}
} private void btnFirstPage_Click(object sender, EventArgs e)
{
this.CurPage = ;
} private void btnLastPage_Click(object sender, EventArgs e)
{
this.CurPage = this.PrevPage;
} private void btnNextPage_Click(object sender, EventArgs e)
{
this.CurPage = this.NextPage;
} private void btnEndPage_Click(object sender, EventArgs e)
{
this.CurPage = this.PageCount;
} private void txtPageNumber_TextChanged(object sender, EventArgs e)
{
if (!Validator.IsNumeric(this.txtPageNumber.Text.Trim()))
{
MessageBox.Show("请输入数字!");
}
} private void btnJump_Click(object sender, EventArgs e)
{
if (!Validator.IsNumeric(this.txtPageNumber.Text.Trim()))//验证输入是否为数字
{
MessageBox.Show("请输入数字!");
}
else
{
if (int.Parse(this.txtPageNumber.Text.Trim()) > )
{
if (int.Parse(this.txtPageNumber.Text.Trim()) < this.PageCount)
{
this.CurPage = int.Parse(this.txtPageNumber.Text.Trim());
}
else
{
this.CurPage = this.PageCount;
}
}
else
{
this.CurPage = ;
}
}
}
}
}
该用户自定义控件在页面中取名pager
private void BindData()
{
int rowCount = ;
pager.PageSize = ;
DataGridView.DataSource = GetList(pager.CurPage, pager.PageSize, out rowCount);
pager.RecordCount = rowCount;
pager.lbNumber.Text = string.Format("共{0}条记录,每页{1}条记录,共{2}页", pager.RecordCount.ToString(), pager.PageSize.ToString(), pager.PageCount.ToString());
} private void Pager_PageChanged(object sender, EventArgs e)
{
BindData(); //重新对DataGridView控件的数据源进行绑定。
}
控件

Windows Form 分页。的更多相关文章
- 如何用Web技术开发Windows Form应用
现在H5很热,很多互联网公司的产品都采用混合编程,其中各个平台客户端的“壳”为原生控件,但是内容很多都是Web网页,因此可以做出很多炫酷的效果.随着Node.js和Ionic等框架的出现,现在感觉Ja ...
- Windows Form 中快捷键设置
在Windows Form程序中使用带下划线的快捷键只需要进行设置: 就能够工作.
- VS2008 Windows Form项目安装包生成详解
2008 Windows Form项目的发布对有经验的程序员来说,可能不值一提,但对很多新手来说却不知道如何操作,因为在很多关于Visual Studio的书籍中也没有相关介绍,权威如<C# 2 ...
- VISUAL STUDIO 2008 WINDOWS FORM项目发布生成安装包详解(转)
转自:http://www.cnblogs.com/killerofyang/archive/2012/05/31/2529193.html Visual Studio 2008 Windows Fo ...
- C# Adding Hyperlink to Windows Form z
When creating a Windows form in C#, we would like to create a hyperlink so that when the user click ...
- windows form (窗体) 之间传值小结
windows form (窗体) 之间传值小结 windows form (窗体) 之间传值小结 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和deleg ...
- Ninject之旅之十二:Ninject在Windows Form程序上的应用(附程序下载)
摘要: 下面的几篇文章介绍如何使用Ninject创建不同类型的应用系统.包括: Windows Form应用系统 ASP.NET MVC应用系统 ASP.NET Web Form应用系统 尽管对于不同 ...
- Windows Form线程同步
.Net多线程开发中,经常需要启动工作线程Worker thread处理某些事情,而工作线程中又需要更新主线程UI thread的界面状态.我们只能在主线程中操作界面控件,否则.Net会抛出异常. 那 ...
- C#通讯录——Windows Form Contact List
C#通讯录 Windows Form Contact List 主窗口 using System; using System.Collections.Generic; using System.Com ...
随机推荐
- DWZ按钮居中显示
- 剑指Offer31 把数组排成最小的数
/************************************************************************* > File Name: 31_SortAr ...
- ASP.NET多线程下使用HttpContext.Current
本来要实现asp.net下使用tcp通讯方式向服务器获取数据,开始采用的方式是 参考: ASP.NET多线程下使用HttpContext.Current为null解决方案 http://www.cnb ...
- Request.QueryString
http://localhost:1988/JPKC/zuoyeDown.aspx?catalog=2009年第二学期为什么Request.QueryString["catalog" ...
- [CAMCOCO][C#]我的系统架构.服务器端.(一)
尽量少的前言 虽然写了N年代码了,但总觉得什么东西都是囫囵吞枣,无法尽得其精髓.最近整理了一套心目中的架构,如有错误之处,烦劳不吝指正,老胡在此不胜感激!! 第一篇 我心目中的架构 做了无数个系统,写 ...
- .NET DLL 保护措施详解(三)最终效果
针对.NET DLL 保护措施详解所述思路完成最终的实现,以下为程序包下载地址 下载 注意: 运行环境为.net4.0,需要安装VS2015 C++可发行组件包vc_redist.x86.exe.然后 ...
- Part 86 to 88 Talking about Multithreading in C#
Part 86 Multithreading in C# What is a Process: Process is what the operating system uses to facil ...
- 在ASP.NET中发送电子邮件的实例教程
首先.导入命名空间: 代码如下 复制代码 using System.Net.Mail; 定义发送电子邮件的方法[网上很多不同的,可以对比着看一下,WinForm的也适用]: 代码如下 复制代码 /// ...
- WebService 的创建,部署和使用
WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当S ...
- Chrome模拟手机浏览器(iOS/Android)的三种方法,亲测无误!
大网站都有推出自己的手机访问版本页面,不管是新闻类还是视频网站,我们在电脑是无法直接访问到手机网站的,比如我经常访问一个3g.qq.com这个手机站点,如果在电脑上直接打开它,则会跳转到其它页面,一般 ...