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 ...
随机推荐
- 利用spring自己实现观察者模式
利用spring,自己实现的一个观察者模式,写着玩玩,目的是为了加深理解,下次用Spring自带的玩一玩. 首先我们定义一个侦听类接口 package com.hyenas.common.listen ...
- 【原】 twemproxy ketama一致性hash分析
转贴请注明原帖位置:http://www.cnblogs.com/basecn/p/4288456.html 测试Twemproxy集群,双主双活 向twemproxy集群做写操作时,发现key的分布 ...
- 【CSS3】---first-of-type选择器+nth-of-type(n)选择器
first-of-type选择器 “:first-of-type”选择器类似于“:first-child”选择器,不同之处就是指定了元素的类型,其主要用来定位一个父元素下的某个类型的第一个子元素. 示 ...
- 手把手教你认识并搭建Nginx
手把手教你认识并搭建Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor ...
- 网站整站变灰的方法(不支持IE10)
html { -ms-filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); - ...
- PHP调用WebService
1. 环境配置 配置php.ini,把php_soap.dll前面的分号去掉, 配置完成,需要重启. 2. PHP调用代码,如下 <?php try { $soap = new SoapCl ...
- AMQ学习笔记 - 10. Spring-JmsTemplate之浏览
概述 浏览只是针对Queue的概念,Topic没有浏览.浏览是指获取消息而消息依然保持在broker中,而消息的接收会把消息从broker中移除. 浏览可以用来实现对Queue中消息的监控. JMS ...
- WCF之消息模式
请求/响应:所有操作的默认行为,在WSDL中表现为Input/Output元素. One_Way. 在WSDL中只有Input,没有回应(Output),所以没有异常报告. 单向操作只会在发出调用的瞬 ...
- English Learning
EnglishPod 百度云盘:http://pan.baidu.com/s/1eQUJquA
- python+selenium环境配置(windows7环境)
下载python[python开发环境] http://python.org/getit/ 下载setuptools[python的基础包工具] http://pypi.python.org/pypi ...