BindingNavigator控件介绍

可以使用BindingNavigator控件来创建标准化的方法,以便用户搜索和更改 Windows 窗体上的数据。BindingNavigator 控件由包含一系列 ToolStripItem 对象的ToolStrip组成,可以实现:添加数据,删除数据,分也显示等。结合BindingSource,可以便用户能够在窗体上数据记录之间移动并与记录进行交互。

BindingSource控件介绍

BindingSource控件是.NET Framework 2.0提供的新控件之一。BindingSource控件与数据源建立连接,然后将窗体中的控件与BindingSource控件建立绑定关系来实现数据绑定,简化数据绑定的过程。

BindingNavigator与BindingSource联合使用

BindingNavigator 控件一般要与BindingSource 控件一同使用较为方便,因为对于 BindingNavigator 控件上的每个按钮,都有一个对应的 BindingSource 组件成员,其以编程方式允许有相同功能。
比如要实现bindingnavigator如何与datagridview绑定,定义一个BindingSource ,并将BindingNavigator 和DataGridView的数据源都设置为BindingSource ,可保证BindingNavigator 和DataGridView的数据同步。

    BindingSource bs = new BindingSource();bs.DataSource = dateTabel1;bindingNavigator1.BindingSource = bs;dataGridView1.DataSource = bs ;

实现分页

 //定义分页需要的变量int cRows = 0;int RowCurrent = 0;int cPages = 0;int PageCurrent = 0;const int PageSize = 7;private void LoadData(){if (PageCurrent == 1){ts_PagePrevious.Enabled = false;}else{ts_PagePrevious.Enabled = true;}if (cPages == PageCurrent){ts_PageNext.Enabled = false;}else{ts_PageNext.Enabled = true;}ts_PagePostion.Text = PageCurrent.ToString();ts_Pages.Text = cPages.ToString();int startRow = (PageCurrent - 1) * PageSize;int endRow = PageCurrent == cPages ? cRows : PageCurrent * PageSize;DataTable dtTemp = table1.Clone();if (table1.Rows.Count != 0){for (int i = startRow; i < endRow; i++){dtTemp.ImportRow(table1.Rows[i]);}bindingSource1.DataSource = dtTemp;dataGridView1.DataSource = bindingSource1;}}private void bindingNavigator1_ItemClicked(object sender, ToolStripItemClickedEventArgs e){if (e.ClickedItem.Text == "上一页"){ts_PageNext.Enabled = true;if (PageCurrent == 1){ts_PagePrevious.Enabled = false;MessageBox.Show("已经是第一页了");return;}PageCurrent--;LoadData();}if (e.ClickedItem.Text == "下一页"){ts_PagePrevious.Enabled = true;if (PageCurrent == PageSize){ts_PageNext.Enabled = false;MessageBox.Show("已经是最后一页了");return;}PageCurrent++;LoadData();}}private void bindingNavigatorMoveFirstPage_Click(object sender, EventArgs e){PageCurrent = 1;bindingNavigatorMoveFirstPage.Enabled = false;bindingNavigatorMoveLastPage.Enabled = true;ts_PagePrevious.Enabled = false;ts_PageNext.Enabled = true;LoadData();}private void bindingNavigatorMoveLastPage_Click(object sender, EventArgs e){PageCurrent = cPages;bindingNavigatorMoveFirstPage.Enabled = true;bindingNavigatorMoveLastPage.Enabled = false;ts_PagePrevious.Enabled = true;ts_PageNext.Enabled = false;LoadData();}private void ts_PagePostion_TextChanged(object sender, EventArgs e){try{if (Convert.ToInt32(ts_PagePostion.Text) > 0 && Convert.ToInt32(ts_PagePostion.Text) <= cPages){PageCurrent = Convert.ToInt32(ts_PagePostion.Text);LoadData();}else{throw new Exception();}}catch (System.Exception ex){PageCurrent = 1;LoadData();}}

然后在显示数据的时候调用LoadData方法:

table1 = selectIp.SelectAllIp();cRows = table1.Rows.Count;cPages = cRows % PageSize == 0 ? cRows / PageSize : cRows / PageSize + 1;PageCurrent = 1;LoadData();dataGridView1.Columns[0].HeaderText = "考场";dataGridView1.Columns[1].HeaderText = "ip段";dataGridView1.Columns[2].HeaderText = "ip起始段";dataGridView1.Columns[3].HeaderText = "ip截至段";

效果如下:

Winform中用bindingNavigator和bingdingSource实现分页相关推荐

  1. WinForm之中BindingNavigator控件的使用

    在微软WinForm中,BindingNavigator控件主要用来绑定数据.可以将一个数据集合与该控件绑定,以进行数据联动的显示效果.如图下图所示: 那么,下面我们就来用BindingNavigat ...

  2. Winform中用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity

    解决方案: 设置      skin.SkinDialogs = false;

  3. C# DataGridView使用BindingNavigator实现简单分页功能

    接上一篇<DataGridView使用自定义控件实现简单分页功能>,本篇使用BindingNavigator来实现简单分页功能.其实也只是借用了一个BindingNavigator空壳, ...

  4. 《WinForm开发系列之控件篇》Item2 BindingNavigator

    WinForm之中BindingNavigator控件的使用 在微软WinForm中,BindingNavigator控件主要用来绑定数据.可以将一个数据集合与该控件绑定,以进行数据 联动的显示效果 ...

  5. winform控件之BindingNavigator

    BindingNavigator控件可以为我们绑定的数据提供一个导航的功能,默认的工具是这个样子的,我们可以根据需求再增加功能 1.BindingNavigator用法 1.1界面布局 界面布局如下 ...

  6. 转:WinForm程序中两份mdf文件问题的解决方法

    在项目中用程序中嵌入mdf文件的方式来进行SQLServer数据库开发非常方便,用来发布开源项目等很方便,点击就可以运行,免部署,特别是在教学中用起来更加方便,老师不用先将数据库文件detach再发给 ...

  7. winform与数据库同步更新

    很长时间没写了,不知道要写点什么,上篇中提到过会把游戏的寻路算法贴上,后来因为很长一段时间忙着其他的事情,还没来着及整理(最近就把他贴出来).既然这次的标题是数据库方面的,那就请我们回归正题吧. 在. ...

  8. BindingNavigator控件

    WinForm之中BindingNavigator控件的使用 在微软WinForm中,BindingNavigator控件主要用来绑定数据.可以将一个数据集合与该控件绑定,以进行数据 联动的显示效果. ...

  9. C# BindingNavigator与DataGridView绑定

    1: BindingSource bs = new BindingSource(); 2: bs.DataSource = dateTabel1; 3: bindingNavigator1.Bindi ...

最新文章

  1. django1.11.6+nginx1.12.2+uwsgi2.0.15 部署
  2. springMVC开启声明式事务实现操作日志记录
  3. 基于DataWorks搭建新零售数据中台
  4. php导出csv文件乱码问题解决方法
  5. Silverlight/WPF中DependencyProperty使用陷阱一枚
  6. Django Rest Framework中文文档:Serializer relations
  7. Laravel渴求式加载
  8. 在办公室谈论工资话题的技巧
  9. 你参加了无数 “打卡” 群,为什么收获甚微。。。
  10. html5关键语句,怎样把握文中的关键语句
  11. From Nand to Tetris Week1 超详细2021
  12. WH-1000XM3蓝牙连接笔记本电脑
  13. 2022年全球100个可持续发展城市榜公布,挪威首都奥斯陆排第一,中国有十个城市入选 | 美通社头条...
  14. IDEA 显示Cannot resolve plugin org.apache.maven.pluginsmaven-site-plugin3.3
  15. 时光不负有心人 --又是折腾的一年
  16. HPE服务器使用ILO5安装系统
  17. WEB端显示摄像头实时图像数据
  18. 记一次查询超时的解决方案The timeout period elapsed......
  19. FIBOS入坑指南——本地开发环境搭建
  20. 8位并行左移串行转换电路_双向移位寄存器 8位双向移位寄存器电路设计

热门文章

  1. 手机技巧:常见的Note、Max、Pro、Plus、Mate系列介绍,看完你就懂了!
  2. c# mysql oledb_C#如何连接数据库?OleDbConnection与SqlConnection的区别
  3. 107岁的奶奶依然精神矍铄,东哥说“奶奶你很靓”
  4. cadence画原理图的时候,元件PIN上出现黄色感叹号Object move not completed as this resulted in connectivity changes
  5. 远程办公全攻略:即时沟通 + 在线协作 + 协同管理 + 移动办公方案
  6. delphi5 ADOStoredProc commandtimeout 超时设置
  7. 关于AuthorizeAttribute使用
  8. Ninja - chromium核心构建工具Jul 28, 2014
  9. 团体天梯 L3-023 计算图 (30 分)
  10. DIY简单功能的torrentkitty种子爬虫