各位大侠 ,谁有vb窗体分割的实例给俺看看,不胜感激!!!

解决方案 »

  1.   

    一个PICTUREBOX控件,命名为Splitter 
    一个LISTBOX控件,命名为LISTLEFT 
    一个TEXTBOX控件,命名为TEXTRIGHT Option Explicit Private Const SPLT_WDTH As Integer = 3 Private currSplitPosX As Long Dim CTRL_OFFSET As Integer Dim SPLT_COLOUR As Long 
    Private Sub Form_Load() CTRL_OFFSET = 5 
    SPLT_COLOUR = &H808080 currSplitPosX = &H7FFFFFFF ListLeft.AddItem "列表项 1" 
    ListLeft.AddItem "列表项 2" 
    ListLeft.AddItem "列表项 3" 
    ListLeft.AddItem "列表项 4" 
    ListLeft.AddItem "列表项 5" 
    TextRight = "在一些流行的应用程序中,经常见到窗体上有二个相邻的列表框,可以用鼠标任意拉动中间分割条,改变列表框大小。" End Sub 
    Private Sub Form_Resize() Dim x1 As Integer 
    Dim x2 As Integer 
    Dim height1 As Integer 
    Dim width1 As Integer 
    Dim width2 As Integer On Error Resume Next height1 = ScaleHeight - (CTRL_OFFSET * 2) 
    x1 = CTRL_OFFSET 
    width1 = ListLeft.Width x2 = x1 + ListLeft.Width + SPLT_WDTH - 1 
    width2 = ScaleWidth - x2 - CTRL_OFFSET ListLeft.Move x1% - 1, CTRL_OFFSET, width1, height1 TextRight.Move x2, CTRL_OFFSET, width2 + 1, height1 Splitter.Move x1 + ListLeft.Width - 1, CTRL_OFFSET, SPLT_WDTH, height1 End Sub Private Sub Splitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton Then Splitter.BackColor = SPLT_COLOUR currSplitPosX = CLng(X) 
    Else If currSplitPosX <> &H7FFFFFFF Then Splitter_MouseUp Button, Shift, X, Y currSplitPosX = &H7FFFFFFF 
    End If End Sub 
    Private Sub Splitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If currSplitPosX& <> &H7FFFFFFF Then If CLng(X) <> currSplitPosX Then 
    Splitter.Move Splitter.Left + X, CTRL_OFFSET, SPLT_WDTH, ScaleHeight - (CTRL_OFFSET * 2) 
    currSplitPosX = CLng(X) End If End If End Sub Private Sub Splitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If currSplitPosX <> &H7FFFFFFF Then If CLng(X) <> currSplitPosX Then 
    Splitter.Move Splitter.Left + X, CTRL_OFFSET, SPLT_WDTH, ScaleHeight - (CTRL_OFFSET * 2) 
    End If currSplitPosX = &H7FFFFFFF Splitter.BackColor = &H8000000F If Splitter.Left > 60 And Splitter.Left < (ScaleWidth - 60) Then ListLeft.Width = Splitter.Left - ListLeft.Left ElseIf Splitter.Left < 60 Then 
    ListLeft.Width = 60 
    Else 
    ListLeft.Width = ScaleWidth - 60 
    End If 
    Form_Resize 
    End If End Sub 
      

  2.   

    去网上找一个叫SplitOCX.ocx的空间
    很好用
      

  3.   

    没有SplitOCX.ocx这个控件啊,谁能提供各好的控件啊,最好亲自用过的哦!