我的窗体只有五个控件: 窗体上面留空为1500缇,用于放置功能选择按钮。 
左侧一个picture1,上面放入treeview1(用picture1的目的是在上边放置标题,下边放置分页按钮,中间treeview1列表。) 
右侧picture2的上面放入WebBrowser1(用picture2的目的是取其边框)。 
要求最大化或调整时左侧控件只是调整picture1和treeview1高度,右侧控件调整picture2和WebBrowser1高度和宽度。 
还有中间一个起调整分割的image1用于调整两侧控件比例。 实现像资源管理器的效果。请高手再帮忙修改一下。现在程序如下,左侧已能达到需要的效果,但右侧无法随最大化而放大达到需要的效果。Dim mbMoving As Boolean
Const sglSplitLimit = 500Private Sub Form_Load()
ImageList1.ListImages.Add 1, , Image3.Picture 
ImageList1.ListImages.Add 2, , Image5.Picture 
TreeView1.ImageList = ImageList1 ' 初始化'
TreeView1.LabelEdit = tvwManual '令TreeView1不可编辑
TreeView1.Nodes.Add , , , ""
TreeView1.Enabled = True   Picture1.Left = 100
   Picture1.Top = 1500
   TreeView1.Left = 150
   TreeView1.Top = 600
   WebBrowser1.Top = TreeView1.Top
   Picture2.Left = 3100
   Picture2.Top = 1500
   TreeView1.Nodes.Add , , "DeskTop", "DeskTop"
   TreeView1.Nodes.Add "DeskTop", tvwChild, , "Note1"
   TreeView1.Nodes(1).Expanded = True
End SubPrivate Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With imgSplitter
        picSplitter.Move .Left, .Top, .Width \ 2, .Height - 120
    End With
    picSplitter.Visible = True
    mbMoving = True
End Sub
Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim sglPos As Single
    If mbMoving Then
        sglPos = X + imgSplitter.Left
        If sglPos < sglSplitLimit Then
            picSplitter.Left = sglSplitLimit
        ElseIf sglPos > Me.Width - sglSplitLimit Then
            picSplitter.Left = Me.Width - sglSplitLimit
        Else
            picSplitter.Left = sglPos
        End If
    End If
End SubPrivate Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    SizeControls picSplitter.Left, Picture1, WebBrowser1
    picSplitter.Visible = False
    mbMoving = False
End SubPrivate Sub Form_Resize()
    On Error Resume Next
    If Me.Width < 3000 Then Me.Width = 3000
    SizeControls imgSplitter.Left, Picture1, WebBrowser1
End Sub
Sub SizeControls(X As Single, ByVal objLeft As Object, ByVal objRight As Object)
On Error Resume Next'设置 Width 属性
If X < 1500 Then X = 1500
If X > (Me.Width - 1500) Then X = Me.Width - 1500
objLeft.Width = X
imgSplitter.Left = X
objRight.Left = X + 40 + objLeft.Left
objRight.Width = Me.Width - (objLeft.Width + 200) - objLeft.Left'设置 Top 属性
objRight.Top = objLeft.Top'设置 height 属性
objLeft.Height = Me.ScaleHeight - 250 - objLeft.TopobjRight.Height = objLeft.Height
imgSplitter.Top = objLeft.Top
imgSplitter.Height = objLeft.HeightTreeView1.Width = objLeft.Width - TreeView1.Left - 200
TreeView1.Height = objLeft.Height - TreeView1.Top - 500
WebBrowser1.Width = objLeft.Width - TreeView1.Left - 200
WebBrowser1.Height = objLeft.Height - TreeView1.Top - 500
End Sub

解决方案 »

  1.   

    如果,你的 WebBrowser1 是放在 pictrure2 中的话.
    请作以下更改
    '************************************SizeControls picSplitter.Left, Picture1, WebBrowser1改为SizeControls picSplitter.Left, Picture1, picture2'****************************WebBrowser1.Width = objLeft.Width - TreeView1.Left - 200
    WebBrowser1.Height = objLeft.Height - TreeView1.Top - 500改为WebBrowser1.Width = objRight.Width - WebBrowser1.Left - 200
    WebBrowser1.Height = objRight.Height - WebBrowser1.Top - 500
      

  2.   

    我讨厌TWIPS... 还是象素方式比较直接...