窗体的resize事件

Snow780311 2003-08-18 04:13:01
当form 的大小改变后,如后编程,使form上的控件布局和form 未改变一样,使空间布局匀称。
...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyl910 2003-08-18
  • 打赏
  • 举报
回复
Resize 事件示例
本例在任何调整窗体大小时的时候,都将自动调整一个 TextBox 控件的大小以填充该窗体。要尝试这个例子,可以将代码粘贴到包含 TextBox 的窗体声明部分。 设置 TextBox 控件的 MultiLine 属性为 True,ScrollBars 属性为 3,BorderStyle 属性为 0,然后按F5键并调整窗体大小。

Private Sub Form_Load ()
Text1.Text = "" ' 清除文本。
End Sub

Private Sub Form_Resize ()
Text1.Move 0,0, ScaleWidth, ScaleHeight
End Sub

lihonggen0 2003-08-18
  • 打赏
  • 举报
回复

就是vb6的代码

将上述的代码存为模块


屏幕调用如下:

Private Sub Form_Load()
ResizeInit Form1
End Sub

Private Sub Form_Resize()
ResizeForm Form1
End Sub
Snow780311 2003-08-18
  • 打赏
  • 举报
回复
不行呀,我用的是vb6.0
FormName.ScaleWidth
编译时出错
溢出
请帮忙
lisong770818 2003-08-18
  • 打赏
  • 举报
回复
up
lihonggen0 2003-08-18
  • 打赏
  • 举报
回复
在form_load里调用ResizeInit
在form_Resize里调用ResizeForm
Snow780311 2003-08-18
  • 打赏
  • 举报
回复
能举个例子吗,比如只有一个command1控件
请帮忙请代码
lihonggen0 2003-08-18
  • 打赏
  • 举报
回复
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

射天狼 2003-08-18
  • 打赏
  • 举报
回复
看你窗口上都有什么控件了,所有的控件的位置及大小都需要写程序,并且控件越多,写的代码就越多。都是根据窗口的宽度与高度调整控件的位置
zhenglc 2003-08-18
  • 打赏
  • 举报
回复
form_resize中按比例设计控件布局和大小

7,763

社区成员

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

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