窗体中控件自动随窗体变化大小

原创 2007年09月24日 16:01:00
Option Explicit
Private FormOldWidth As Long
'保存窗体的原始宽度
Private FormOldHeight As Long
'保存窗体的原始高度

'在调用ResizeForm前先调用本函数
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub

'按比例改变表单内各元件的大小,在调用ReSizeForm前先调用ReSizeInit函数
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double

ScaleX = FormName.ScaleWidth / FormOldWidth
'保存窗体宽度缩放比例
ScaleY = FormName.ScaleHeight / FormOldHeight
'保存窗体高度缩放比例
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
'读取控件的原始位置与大小
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(i) = 0
End If
'根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next i
Next Obj
On Error GoTo 0
End Sub

'开发软件时候,把这个modal装入程序中.然后加入如下代码:
Private Sub Form_Load()
Call ResizeInit(Me) '在程序装入时必须加入
End Sub

Private Sub Form_Resize()
Call ResizeForm(Me) '确保窗体改变时控件随之改变
End Sub
--------------------------------------------------------------------------------

ok,这样你的软件就可以窗体中控件自动随窗体变化大小!

你的软件至少从外观上从此变得不再那么难看了.而且大分辨率下也显得比例协调了. 
 

C#控件随着窗口大小变化而自动变化

在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性。Anchor属性定义控件的定位点位置。当控件锚定到某个...
  • wangzhen209
  • wangzhen209
  • 2016年03月25日 15:32
  • 9150

C#当窗体大小改变时,窗体中的控件大小也随之改变

转自:http://www.cnblogs.com/slyzly/articles/1965965.html 第一种:推荐 在窗体中加上如下代码即可实现,但窗体点击放大按钮时却不能改变...
  • zhichao2001
  • zhichao2001
  • 2016年01月21日 09:39
  • 2949

C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变

参考文章: 1 http://www.crifan.com/csharp_control_size_auto_changed_with_winform_size_changed/ 2 http://0...
  • victory_nj
  • victory_nj
  • 2015年11月27日 11:57
  • 6745

VB6中控件窗体大小自动变化

  • 2015年09月09日 11:50
  • 15KB
  • 下载

随窗体变化自动改变控件大小

  • 2004年07月23日 00:00
  • 31KB
  • 下载

控件大小随窗体大小而变化

  • 2012年07月27日 09:32
  • 2KB
  • 下载

VB如何使控件位置和大小自动适应窗体变化的三种不同模式.doc

  • 2015年08月18日 21:32
  • 32KB
  • 下载

C#窗体、控件尺寸位置变化自动保存的类

  • 2016年09月21日 11:49
  • 4KB
  • 下载

C++builder中控件随窗体尺寸变换而变换尺寸位置类

  • 2010年12月13日 20:45
  • 355KB
  • 下载

窗体控件大小随窗体的大小而自动变化

  • 2011年12月07日 12:50
  • 46KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:窗体中控件自动随窗体变化大小
举报原因:
原因补充:

(最多只允许输入30个字)