Delphi 可以吗?我只知道 Java 里面的布局管理器可以,没听说过 Delphi 也有这个功能。在 VB/VC 中都需要自己做:
Private Sub Form_Resize
' 在这里根据窗体的大小调整控件的位置
End Sub如果要例子,发 email 给我。
Private Sub Form_Resize
' 在这里根据窗体的大小调整控件的位置
End Sub如果要例子,发 email 给我。
解决方案 »
- 如何将字符串截成单个字的数组
- 这种查询应该怎么写?急
- ====打印整个PictureBox的一个疑问:PictureBox中RichTextBox中的文本和图形无法打印=====
- 怎样连到ODBC(SQL SERVER 2000数据源)
- vb中bcd码转换十进制码
- 求救OpenFileDialog打开的困扰,
- DAO中奇怪错误(在线等 )
- 怎样用VB 对另一个程序的工具栏的按钮的文字进行汉化(改变),不想采用内核汉化的方法,
- 请教各位大侠们~~~~~~~~怎么样用VB实现超连接??????????????????
- 请问 vb里面写dll时候能否在dll运行到某个地方的时候让dll停止运行(终止运行)?
- 几个菜问题......
- 怎样在预览报表前用语句设定纸张大小
这时你也知道了窗体的height和width
只要由它来控制其控件的尽寸就可以了呀
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 SubPrivate Sub Form_Load()
Call ResizeInit(Me) '在程序装入时必须加入
End SubPrivate Sub Form_Resize()
Call ResizeForm(Me) '确保窗体改变时控件随之改变
End Sub
本 例 中 给 出 了 二 个 函 数:ResizeInit 和ResizeForm, 在 调 用ResizeForm 之 前 必 须 先 调 用ResizeInit。 你 可 以 将 本 程 序 拷 到 窗 体 代 码 段 里, 然 后 在 窗 体 里 加 入 任 意 控 件 即 可 进 行 测 试。
给我发邮件,我发一个控件给你