如何使控件和窗口的位置比例不变,当窗口变大或变小的时候

CSDNtony 2004-11-30 09:30:17
现在的情况是当窗口变大或变小时,控件的大小不变,这样的界面不好,有没有很好的解决方法呢,谢谢各位了
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
myhgyp 2004-11-30
  • 打赏
  • 举报
回复
用上面老兄的方法也许可以,但我想肯定也不能做到尽如人意
myhgyp 2004-11-30
  • 打赏
  • 举报
回复
这是VB里面属于基本没有办法办到的事情
wwqna 2004-11-30
  • 打赏
  • 举报
回复
Option Explicit
Private Type ControlSize
name As String '控件名称
x As Single '左边距比例
y As Single '右边距比例
cx As Single '宽度比例
cy As Single '长度比例
End Type
Dim arrSize() As ControlSize
Private Sub Form_Load()
ReDim arrSize(0) As ControlSize
SaveSize Command1
SaveSize Command2
End Sub

Private Sub Form_Resize()
If Me.WindowState = 1 Then
Exit Sub
End If
Resize Command1
Resize Command2
End Sub

Private Sub Resize(obj As Object)
Dim i As Integer
Dim j As Integer
j = UBound(arrSize())
For i = 1 To j
If arrSize(i).name = obj.name Then
Exit For
End If
Next i
If i > j Then
Exit Sub
Else
obj.Left = arrSize(i).x * Me.ScaleWidth
obj.Top = arrSize(i).y * Me.ScaleHeight
obj.Width = arrSize(i).cx * Me.ScaleWidth
obj.Height = arrSize(i).cy * Me.ScaleHeight
End If

End Sub

Private Sub SaveSize(obj As Object)
Dim count As Integer
count = UBound(arrSize)
ReDim Preserve arrSize(count + 1)
arrSize(count + 1).name = obj.name
arrSize(count + 1).x = obj.Left / Me.ScaleWidth
arrSize(count + 1).y = obj.Top / Me.ScaleHeight
arrSize(count + 1).cx = obj.Width / Me.ScaleWidth
arrSize(count + 1).cy = obj.Height / Me.ScaleHeight
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧