热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

练习.netWinForm开发(一):自定义分页控件(2)

代码ImportsSystem.DataImportsSystem.Data.OleDbImportsSystem.Text.RegularExpressionsPublicCla
ExpandedBlockStart.gif代码
Imports System.Data
Imports System.Data.OleDb
Imports System.Text.RegularExpressions
Public Class PagerWinControl
    
Dim strsql As String = ""
    
'总项数
    Private _TotalItem As Integer
    
Public Property TotalItem() As Integer
        
Get
            
Return _TotalItem
        
End Get
        
Set(ByVal value As Integer)
            _TotalItem 
= value
            
If value = 0 Then Exit Property
            ToolCount.Text 
= value
            
Dim result As Integer
            result 
= CInt(ToolCount.Text) Mod _PageCount
            
If result = 0 Then
                ToollblCount.Text 
= CInt(ToolCount.Text) \ _PageCount
            
Else
                ToollblCount.Text 
= CInt(ToolCount.Text) \ _PageCount + 1
            
End If
        
End Set
    
End Property
    
'每一页的数量
    Private _PageCount As Integer
    
Public Property PageCount() As Integer
        
Get
            
Return _PageCount
        
End Get
        
Set(ByVal value As Integer)
            _PageCount 
= value
        
End Set
    
End Property
    
'页码
    Private _PageNO As Integer
    
Public Property PageNO() As Integer
        
Get
            
Return _PageNO
        
End Get
        
Set(ByVal value As Integer)
            _PageNO 
= value
        
End Set
    
End Property
    
Private Sub TooLFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TooLFirst.Click
        Toolcurrent.Text 
= 1
        _PageNO 
= 1
        
RaiseEvent OnButtonClick(sender, e)
    
End Sub

    
Private Sub ToolPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolPrevious.Click
        
If Toolcurrent.Text <&#61; 1 Then
            MessageBox.Show(
"已经是第一页了""五洲商慧提醒您", MessageBoxButtons.OK, MessageBoxIcon.Information)
            
Exit Sub
        
End If
        Toolcurrent.Text 
&#61; CInt(Toolcurrent.Text) - 1
        _PageNO 
&#61; CInt(Toolcurrent.Text)
        
RaiseEvent OnButtonClick(sender, e)
    
End Sub

    
Private Sub ToolNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolNext.Click
        
If Toolcurrent.Text >&#61; ToollblCount.Text Then
            MessageBox.Show(
"已经是最后一页了""五洲商慧提醒您", MessageBoxButtons.OK, MessageBoxIcon.Information)
            
Exit Sub
        
End If
        Toolcurrent.Text 
&#61; CInt(Toolcurrent.Text) &#43; 1
        _PageNO 
&#61; CInt(Toolcurrent.Text)
        
RaiseEvent OnButtonClick(sender, e)
    
End Sub

    
Private Sub ToolLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolLast.Click
        Toolcurrent.Text 
&#61; ToollblCount.Text
        _PageNO 
&#61; CInt(ToollblCount.Text)
        
RaiseEvent OnButtonClick(sender, e)
    
End Sub

    
Private Sub ToolGO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolGO.Click
        
If TooltxtPage.Text &#61; "" Then Exit Sub
        
If Not Regex.Match(TooltxtPage.Text, "^[1-9]\d*$").Success &#61; True Then
            MessageBox.Show(
"请输入数字""五洲商慧提醒您", MessageBoxButtons.OK, MessageBoxIcon.Information)
            TooltxtPage.Text 
&#61; ""
            
Exit Sub
        
End If
        
If CInt(TooltxtPage.Text) > CInt(ToollblCount.Text) Then
            MessageBox.Show(
"不存在此页""五洲商慧提醒您", MessageBoxButtons.OK, MessageBoxIcon.Information)
            TooltxtPage.Text 
&#61; ""
            
Exit Sub
        
End If
        Toolcurrent.Text 
&#61; TooltxtPage.Text
        _PageNO 
&#61; CInt(Toolcurrent.Text)
        
RaiseEvent OnButtonClick(sender, e)
    
End Sub
    
Public Custom Event OnButtonClick As EventHandler
        
AddHandler(ByVal value As EventHandler)
            Events.AddHandler(
"ClickEvent", value)
        
End AddHandler

        
RemoveHandler(ByVal value As EventHandler)
            Events.RemoveHandler(
"ClickEvent", value)
        
End RemoveHandler

        
RaiseEvent(ByVal sender As ObjectByVal e As System.EventArgs)
            
CType(Events("ClickEvent"), EventHandler).Invoke(sender, e)
        
End RaiseEvent
    
End Event
End Class

调用代码

ExpandedBlockStart.gif代码
Private Sub PagerWinControl1_OnButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PagerWinControl1.OnButtonClick
        
Dim conn As New OleDbConnection("Provider&#61;Microsoft.Jet.OLEDB.4.0;Data Source&#61;|DataDirectory|\pageing.mdb;")
        conn.Open()
        
Dim pageCount As Integer
        
Dim pageNO As Integer
        pageNO 
&#61; PagerWinControl1.PageNO
        pageCount 
&#61; PagerWinControl1.PageCount
        
If pageNO &#61; 1 Then
            strsql 
&#61; "select top " & pageCount & " * from student order by id asc"
        
Else
            strsql 
&#61; "select top " & pageCount & " * from student where id not in(select top " & pageCount * pageNO - pageCount & " id from student) order by id asc"
        
End If
        
Dim ad As New OleDbDataAdapter(strsql, conn)
        
Dim dt As New DataTable
        ad.Fill(dt)
        DataGridView1.DataSource 
&#61; dt
    
End Sub


 

不费话了&#xff0c;直接上代码了。自定义控件。

 

效果图。

 

希望哪个大哥给我改改。我水平太差。

 

转:https://www.cnblogs.com/Believeme/archive/2010/02/25/1673775.html



推荐阅读
author-avatar
apologize
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有