Winform中用bindingNavigator和bingdingSource实现分页

article/2025/8/24 8:09:19

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截至段";

效果如下:

这里写图片描述


http://chatgpt.dhexx.cn/article/juSYBx4G.shtml

相关文章

DataGridView使用bindingNavigator实现分页功能(应用存储过程)

想法是这样的&#xff1a;使用bindingNavigator存储过程实现DataGridView的分页功能&#xff0c;其中包含简单的查询。 存储过程如下&#xff1a; --创建分页查询存储过程(含输出参数&#xff0c;输入参数&#xff08;含搜索功能&#xff09;) use HotelDB if exists(select *…

配置bind

安装bind yum install bind-* service firewalld stop #暂时关闭防火墙 vim /etc/named.conf Linsten-on port 53 {any;}; 监听除了自己以外的ip Allow-query{any&#xff1b;} 允许任意的ip来访问 配置正向解析 /etc/named.rfc1912.zones #直接在底部添加 zone "s…

Android dataBinding和viewBinding的混淆配置

在最近重构过的项目中有使用dataBinding或viewBinding&#xff0c;在调试的时候没有问题&#xff0c;但是在混淆过后出现了崩溃&#xff1a; 我们知道viewbinding的初始化是ActivityMainBinding.inflate() 而我是通过反射去初始化viewbinding的 很明显&#xff0c;布局所生成的…

viewBinding和@BindView的用法的简单使用

viewBinding 1.module下的build.gradle&#xff0c;在闭包android{ }里面添加 viewBinding {enabled true} 2.使用方法 用视图绑定功能后&#xff0c;系统会为该模块中包含的每个 XML 布局文件生成一个绑定类。这个类的类名是以xml布局文件名去掉下换线后&#xff0c;单词…

BindingNavigator控件

WinForm之中BindingNavigator控件的使用 在微软WinForm中&#xff0c;BindingNavigator控件主要用来绑定数据。可以将一个数据集合与该控件绑定&#xff0c;以进行数据 联动的显示效果。如图下图所示&#xff1a; 那么&#xff0c;下面我们就来用BindingNavigator控件做一下上图…

WinForm控件之【BindingNavigator】【DataSet】【BindingSource】【DataGridView】

基本介绍 数据类控件&#xff0c;数据加载绑定便捷应用相当广泛&#xff0c;具体看例子自行扩展吧&#xff1b; 常设置属性 BindingNavigator--BindingSource&#xff1a;数据来源&#xff0c;绑定后默认项会根据相应的操作按钮执行操作&#xff1b; BindingNavigator--Items&a…

WinForm之中BindingNavigator控件的使用

在微软WinForm中&#xff0c;BindingNavigator控件主要用来绑定数据。可以将一个数据集合与该控件绑定&#xff0c;以进行数据联动的显示效果。如图下图所示&#xff1a; 那么&#xff0c;下面我们就来用BindingNavigator控件做一下上图所示的效果。 分析&#xff1a;该案例以B…

winform控件之BindingNavigator

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

C#开发之——ToolStrip(10.22)

一 概述 在C# WinForm开发中添加工具栏(ToolStrip)和添加菜单栏类似&#xff0c;在工具箱中将ToolStrip控件直接拖到Windows窗体中即可 <!--more--> 二 ToolStrip操作 从工具箱拖拽ToolStrip控件到Windows窗体后&#xff0c;如下图所示(在添加了ToolStrip控件之后&…

C#winform窗体控件之toolStrip

C#winform窗体控件之toolStrip 在做窗体时我们可能需要一个工具栏&#xff0c;那这时最简单的方法就是添加一个toolStrip控件。 如何完成一个上图的工具栏呢? 首先&#xff0c;需要添加一个toolStrip控件&#xff0c;然后点击控件上的添加按钮&#xff0c;添加你需要的控件&…

C#如何让ToolStrip工具栏按钮分别靠左和靠右对齐分布

ToolStrip工具栏按钮默认靠左对齐&#xff0c;如何让ToolStrip工具栏按钮分别靠左和靠右对齐分布&#xff1f;&#xff01; 第一步&#xff0c;选择要靠右对齐的工具栏上的按钮&#xff0c;属性&#xff0c;设置“Alignment: Right” 即&#xff0c;this.toolStripSysInfoBut…

ToolStrip

&#xfeff;&#xfeff; 效果实现&#xff1a; 1.添加ToolStrip控件 2.点击ToolStrip控件添加button,设置Imagine,对ToolStripButton的Text进行设置,DisplayStyle设置为ImagineAndText即可。

ToolStrip控件中如何添加功能按钮

1&#xff0c;在工具箱中选择ToolStrip控件 2&#xff0c;在属性框&#xff0c;选择item 3,进入该界面&#xff0c;选择添加类型 4&#xff0c;指定选定控件的类型 name:控件的名字&#xff0c;相当于对象名。 text&#xff1a;指定控件中内容限制字段 image&#xff1a;指…

c# ToolStrip控件图片和文字显示

如上图达到这样的效果 首先我们给属性Image和Text分别赋予需要显示的图片和文字 然后设置DisplyStyle属性为ImageAndText&#xff0c;意为同时显示图片和文字 各种设置ImageAlign和TextAlign&#xff0c;调整图片和文字的位置 设置ImageTextRelation属性&#xff0c;获取或…

C# toolstrip按钮的图片不显示

toolstrip按钮的图片不显示 一、设置图片尺寸异常无法正常显示出图片。 以为没正常设置toolStrip尺寸照成图片无法正常显示的效果&#xff0c;如下图&#xff1a; 修改为正常尺寸后可以正常先显示图图片 显示正常 二、按钮没有选择图片显示模式&#xff0c;DisplayStyle:No…

C# ToolStrip 图标大小设置

VS-C 系列&#xff1a;所有相关C文章链接. VS-C# 系列&#xff1a;所有相关C#文章链接. bat 系列&#xff1a;所有相关bat文章链接. Keil 系列&#xff1a;所有相关文章链接 所有内容均以最小系统调试成功&#xff1b;逐步提供低分源码工程下载&#xff01; 保证每行代码都经过…

C# 遍历toolStrip控件

VS-C 系列&#xff1a;所有相关C文章链接. VS-C# 系列&#xff1a;所有相关C#文章链接. bat 系列&#xff1a;所有相关bat文章链接. Keil 系列&#xff1a;所有相关文章链接 所有内容均以最小系统调试成功&#xff1b;逐步提供低分源码工程下载&#xff01; 保证每行代码都经过…

C#toolStrip使用

1、添加toolStrip控件 2、属性栏中将显示方式改为以下属性 3、增加选项卡时选择Button&#xff0c;双击Button就可以编辑事件了

C#中使用ToolStrip制作展示图标菜单

1. ToolStrip工具栏控件 工具栏主要属性 属性说明ImageScalingSize工具栏中的项显示的图像的大小Items在工具栏上显示的项的集合 工具栏项的主要属性和事件 属性说明DisplayStyle设置图像和文本的显示方式Image按钮标签上显示的图片ImageScaling是否调整按钮标签上显示的图…