vb中如何让webbrowser控件大小随窗体变化?

yin0377 2009-07-02 04:17:03
最大化窗体后webbrowser控件仍然是原始大小。
...全文
931 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2012-04-27
  • 打赏
  • 举报
回复
我一般都是用 webbrowser1.move 0,0,me.scalewidth,me.scaleheight
mwjw258 2012-04-26
  • 打赏
  • 举报
回复
谢谢了,超级实用,好用。
zenter 2009-07-02
  • 打赏
  • 举报
回复
还有办法
窗体最大化会触发窗体的_Resize 事件
在这个事件下 webbrowser 可根据 窗体的大小 进行调整
比如

webbrowser.top = me.top -200
webbrowser.left = me.left - 200
webbrowser.width = me.width - 400
webbrowser.height = me.height
嗷嗷叫的老马 2009-07-02
  • 打赏
  • 举报
回复
Option Explicit
'*************************************************************************
'**模 块 名:ModAutoSize
'**说 明:自动调整窗体控件大小及位置
'**创 建 人:马大哈 紫水晶工作室 版权所有
'**日 期:2003年12月17日
'**备 注: 摘于网络
'**版 本:V1.0
'*************************************************************************
'' 在Form_Load里面调用:
'' ControlAutoSize Me,0
'' 在Form_Resize里面调用:
'' ControlAutoSize Me,1
''**********************************

Private Type cP
Wp As Single
Hp As Single
Tp As Single
Lp As Single
End Type
Dim Ap() As cP

Private Sub Ai(ByRef mForm As Form)
On Error Resume Next
Dim I As Integer
For I = 0 To mForm.Controls.Count - 1
With Ap(I)
.Wp = mForm.Controls(I).Width / mForm.Width
.Hp = mForm.Controls(I).Height / mForm.Height
.Lp = mForm.Controls(I).Left / mForm.Width
.Tp = mForm.Controls(I).Top / mForm.Height
End With
Next I
End Sub

Public Function ControlAutoSize(ByRef mForm As Form, ByVal OptIndex As Long)
Select Case OptIndex
Case 0
mForm.Height = mForm.ScaleHeight
ReDim Ap(0 To mForm.Controls.Count - 1)
Call Ai(mForm)
Case Else
Dim I As Integer

On Error Resume Next
With mForm
For I = 0 To .Controls.Count - 1
.Controls(I).Move Ap(I).Lp * .ScaleWidth, _
Ap(I).Tp * .ScaleHeight, _
Ap(I).Wp * .ScaleWidth, _
Ap(I).Hp * .ScaleHeight
Next I
End With
End Select
End Function

注意错误处理.

1,453

社区成员

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

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