测试环境:windows 7和Microsoft Visual Studio 2015
VB.NET虽然提供了大量控件供我们使用,但很多控件仅提供最基础的功能。比如用DataGridView控件可以非常方便显示或操作数据库数据, 但却没有分页功能。本文介绍通过自定义窗体库组合VB.NET已有控件实现DataGridView控件分页显示功能。
测试效果如图:
这其实就是一个组合控件(CompositeControls),继承自UserControl类,将目前现有的控件根据需要组合到一起形成一个新的控件。具体做法如下:
一、新建Windows窗体控件库项目
如下图所示,名称按你喜欢的写上就行。Windows窗体控件库有可视化的设计视图,可以从工具箱添加VB.NET中已有的控件。
如果新建的是Windows窗体应用程序,也可以通过右键单击解决方案资源管理器中的项目名称,在弹出的右键菜单中点选“添加”-“新建项”,在弹出的“新建项目”窗口中选择“用户控件”,这个也是建自定义组合控件的,如下图所示。
二、布局
在设计窗口里添加如下图所示的控件。
布局技巧分享:
1、按钮外观美化:如下图设置按钮的FlatAppearance的BorderSize为0,即去除边框,FlatStyle为Flat,即按钮外观为平面显示,通过Image属性为按钮添加图片。
2、TextBoxt和Lable设置:设置TextAlign可设置文本对齐方式,文本框和标签大小默认根据字号自动调整大小的,是不能通过Size属性来调整大小的,如果要调整Size属性,必须先把AutoSize属性设置为False。
3、控件对齐方式设置:大部分控件都可以通过设置Anchor属性来将控件绑定到容器的边缘,当组合控件大小整体改变时,里面的控件始终与绑定的边缘保持相同距离。
4、为控件设置鼠标划过文本提示:需要先从工具箱添加ToolTip控件,这时每个控件都多了一个ToolTip1上的ToolTip属性,在右侧设置的文本即为提示文本。
三、编写分页控件代码
布局好后就可以编写分页代码了。包括分页控件的属性和事件。
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Text
Imports System.Windows.Forms
Public Class DataGridViewPaging
Inherits UserControl
#Region "构造函数"
Public Sub New()
InitializeComponent()
End Sub
#End Region
#Region "分页字段和属性"
Private _pageIndex As Integer = 1
''' <summary>
''' 当前页面
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Public Overridable Property PageIndex As Integer
Get
Return _pageIndex
End Get
Set(ByVal value As Integer)
If value > 0 Then
_pageIndex = value
Else
_pageIndex = 1