
怎样让VB制作的应用程序在调整大小时改变布局?
我制作了一个VB应用程序,可是在调整大小时里面的控件不能自动调整适应的大小,急求答案!高分悬赏!...
我制作了一个VB应用程序,可是在调整大小时里面的控件不能自动调整适应的大小,
急求答案!高分悬赏! 展开
急求答案!高分悬赏! 展开
3个回答
展开全部
在form的resize事件中修改控件的位置和大小
以一个picturebox为例,随窗口大小自动调整
Private Sub Form_Resize()
Picture1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub
以一个picturebox为例,随窗口大小自动调整
Private Sub Form_Resize()
Picture1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub
展开全部
Private Type ControlPlaces
Contrl As Control
Left As Single
Top As Single
Width As Single
Height As Single
End Type
Dim CtrlPos() As ControlPlaces
Private Sub Form_Load()
ReloadPos
End Sub
Sub ReloadPos()
ReDim CtrlPos(Me.Controls.Count)
Dim Ctrl As Control
Dim Num As Long
For Each Ctrl In Me.Controls
Set CtrlPos(Num).Contrl = Ctrl
CtrlPos(Num).Left = Ctrl.Left
CtrlPos(Num).Top = Ctrl.Top
CtrlPos(Num).Width = Ctrl.Width
CtrlPos(Num).Height = Ctrl.Height
Num = Num + 1
Next
CtrlPos(UBound(CtrlPos)).Left = Me.Left
CtrlPos(UBound(CtrlPos)).Top = Me.Top
CtrlPos(UBound(CtrlPos)).Width = Me.Width
CtrlPos(UBound(CtrlPos)).Height = Me.Height
End Sub
Private Sub Form_Resize()
WChng = Me.Width / CtrlPos(UBound(CtrlPos)).Width
HChng = Me.Height / CtrlPos(UBound(CtrlPos)).Height
For x = 0 To UBound(CtrlPos) - 1
CtrlPos(x).Contrl.Left = CtrlPos(x).Left * WChng
CtrlPos(x).Contrl.Top = CtrlPos(x).Top * HChng
CtrlPos(x).Contrl.Width = CtrlPos(x).Width * WChng
CtrlPos(x).Contrl.Height = CtrlPos(x).Height * HChng
Next
End Sub
Contrl As Control
Left As Single
Top As Single
Width As Single
Height As Single
End Type
Dim CtrlPos() As ControlPlaces
Private Sub Form_Load()
ReloadPos
End Sub
Sub ReloadPos()
ReDim CtrlPos(Me.Controls.Count)
Dim Ctrl As Control
Dim Num As Long
For Each Ctrl In Me.Controls
Set CtrlPos(Num).Contrl = Ctrl
CtrlPos(Num).Left = Ctrl.Left
CtrlPos(Num).Top = Ctrl.Top
CtrlPos(Num).Width = Ctrl.Width
CtrlPos(Num).Height = Ctrl.Height
Num = Num + 1
Next
CtrlPos(UBound(CtrlPos)).Left = Me.Left
CtrlPos(UBound(CtrlPos)).Top = Me.Top
CtrlPos(UBound(CtrlPos)).Width = Me.Width
CtrlPos(UBound(CtrlPos)).Height = Me.Height
End Sub
Private Sub Form_Resize()
WChng = Me.Width / CtrlPos(UBound(CtrlPos)).Width
HChng = Me.Height / CtrlPos(UBound(CtrlPos)).Height
For x = 0 To UBound(CtrlPos) - 1
CtrlPos(x).Contrl.Left = CtrlPos(x).Left * WChng
CtrlPos(x).Contrl.Top = CtrlPos(x).Top * HChng
CtrlPos(x).Contrl.Width = CtrlPos(x).Width * WChng
CtrlPos(x).Contrl.Height = CtrlPos(x).Height * HChng
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form有个resize事件,改变窗体大小时发生
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询