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

代码
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  <=   1   Then
            MessageBox.Show(
" 已经是第一页了 " " 五洲商慧提醒您 " , MessageBoxButtons.OK, MessageBoxIcon.Information)
            
Exit Sub
        
End   If
        Toolcurrent.Text 
=   CInt (Toolcurrent.Text)  -   1
        _PageNO 
=   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  >=  ToollblCount.Text  Then
            MessageBox.Show(
" 已经是最后一页了 " " 五洲商慧提醒您 " , MessageBoxButtons.OK, MessageBoxIcon.Information)
            
Exit Sub
        
End   If
        Toolcurrent.Text 
=   CInt (Toolcurrent.Text)  +   1
        _PageNO 
=   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 
=  ToollblCount.Text
        _PageNO 
=   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  =   ""   Then   Exit Sub
        
If   Not  Regex.Match(TooltxtPage.Text,  " ^[1-9]\d*$ " ).Success  =   True   Then
            MessageBox.Show(
" 请输入数字 " " 五洲商慧提醒您 " , MessageBoxButtons.OK, MessageBoxIcon.Information)
            TooltxtPage.Text 
=   ""
            
Exit Sub
        
End   If
        
If   CInt (TooltxtPage.Text)  >   CInt (ToollblCount.Text)  Then
            MessageBox.Show(
" 不存在此页 " " 五洲商慧提醒您 " , MessageBoxButtons.OK, MessageBoxIcon.Information)
            TooltxtPage.Text 
=   ""
            
Exit Sub
        
End   If
        Toolcurrent.Text 
=  TooltxtPage.Text
        _PageNO 
=   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   Object ByVal  e  As  System.EventArgs)
            
CType (Events( " ClickEvent " ), EventHandler).Invoke(sender, e)
        
End   RaiseEvent
    
End   Event
End Class

调用代码

代码
Private   Sub  PagerWinControl1_OnButtonClick( ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)  Handles  PagerWinControl1.OnButtonClick
        
Dim  conn  As   New  OleDbConnection( " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\pageing.mdb; " )
        conn.Open()
        
Dim  pageCount  As   Integer
        
Dim  pageNO  As   Integer
        pageNO 
=  PagerWinControl1.PageNO
        pageCount 
=  PagerWinControl1.PageCount
        
If  pageNO  =   1   Then
            strsql 
=   " select top  "   &  pageCount  &   "  * from student order by id asc "
        
Else
            strsql 
=   " 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 
=  dt
    
End Sub


 

不费话了,直接上代码了。自定义控件。

 

效果图。

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

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

 

你可能感兴趣的:(WinForm)