我的窗体只有五个控件: 窗体上面留空为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
左侧一个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
解决方案 »
- winsock构建的聊天程序问题
- 关于Data Dynamic ActiveReports的问题!
- “实时错误'-2147467259(80004005)':未指定的错误”是一个什么错误(blob存储过程中出现的错误)
- 请教:数据库中二进制信息的显示问题
- VB调用DTS将数据从sql server导出到excel的问题??
- 怎样编程实现每隔几天(如2)在某一个固定时刻(如10:00)执行一个操作
- 只有vb和C语言环境的情况下,如何将C程序变成VB可以引用的DLL?
- 为什么我的recordset用delete删除以后还有记录,呜呜,救救我吧!!
- 如何在程序里调出开始菜单里那个“运行”对话框?
- ADO控件DataCombo当数据源改变时其列表内容不随着改变,该怎么办?
- 关于执行字符串中的语句问题
- vbs 如何将整数转换为字符串传递给objShell.Run()的参数中去。
请作以下更改
'************************************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