在VB中,如果窗体改变大小,控件也跟着改变,代码该怎么写?

比如说,我在FORM上添加一个label控件,FORM窗体的大小改变了,我想把label控体也一起改变,有能帮助我的请回答一下,谢谢!~... 比如说,我在FORM上添加一个label控件,FORM窗体的大小改变了,我想把label控体也一起改变,有能帮助我的请回答一下,谢谢!~ 展开
 我来答
iegerm
2007-12-18 · TA获得超过113个赞
知道答主
回答量:251
采纳率:0%
帮助的人:196万
展开全部
'只要设置它的长和宽跟窗体形成关系就行了(在click、 mouseup ...事件里都可以。下面是在mousemove事件里写的,就是说鼠标移到窗体内就会发生改变。)
下面是代码:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.BorderStyle = 1 '它的边框要现出来才看得到
Label1.Width = ScaleWidth / 2 '这里设置它的长等于窗体长的一半
Label1.Height = ScaleHeight / 2 '宽也等于窗体宽的一半
End Sub
依土天羽
2007-12-18 · TA获得超过289个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:403万
展开全部
把改变控件大小的代码写到窗体的resize事件里,只要窗体的大小发生变化就会触发该事件,千万不要写到mousemove事件中,不然每次鼠标移动都会触发的,不管窗体大小是否发生变化

'示例
Private Sub Form_Resize()
'判断窗口是否最小化,以免产生除零异常
If Me.WindowState = 1 Then
End
End If

'改变窗口内部控件大小
Text1.Left = 10
Text1.Top = 10
Text1.Width = Me.ScaleWidth - 30
Text1.Height = Me.ScaleHeight - 40 - Command1.Height
Command1.Left = (Me.ScaleWidth - Command1.Width) / 2
Command1.Top = Text1.Top + Text1.Height + 10
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵扶风
2007-12-18 · TA获得超过846个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:629万
展开全部
这段代码 窗体内的所有控件都会成比例缩放:

Dim LastW As Long, LastH As Long
Private Sub Form_Load()
LastW = Me.ScaleWidth
LastH = Me.ScaleHeight
End Sub
Private Sub Form_Resize()
Dim i As Control
If Me.WindowState = 1 Then Exit Sub '防止最小化时出错
If Me.Height < 3000 Then Me.Height = 3000 '防止窗体太小导致比例失真
If Me.Width < 3000 Then Me.Width = 3000
On Error Resume Next
For Each i In Form1
i.Top = (Me.ScaleHeight / LastH) * i.Top
i.Height = (Me.ScaleHeight / LastH) * i.Height '如果有list控件,建议其高度单独进行赋值
i.Left = (Me.ScaleWidth / LastW) * i.Left
i.Width = (Me.ScaleWidth / LastW) * i.Width
Next
LastW = Me.ScaleWidth
LastH = Me.ScaleHeight
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cwa9958
2007-12-18 · TA获得超过1885个赞
知道大有可为答主
回答量:2504
采纳率:0%
帮助的人:2030万
展开全部
Private Sub Form_Resize()

If Me.Width < 3000 Then Me.Width = 3000 '控制最小尺寸,不过这是简单的做法,有闪动的
If Me.Height < 3000 Then Me.Height = 3000

Command1.Top = 2 * Me.ScaleHeight / 3 '在窗体的2/3处
Command1.Left = (Me.ScaleWidth - Command1.Width) / 2 '居中

Text1.Top = Me.ScaleHeight / 3 '在窗体的 1/3处
Text1.Left = (Me.ScaleWidth - Text1.Width) / 2 '居中

'还可以改变控件的高度,长度,等等参数

End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牛A和牛C间徘徊
2007-12-18 · TA获得超过1037个赞
知道小有建树答主
回答量:782
采纳率:0%
帮助的人:609万
展开全部
楼上的写错了
If Me.WindowState = 1 Then
End
End If

end就退出了,应该是exit sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式