vb 子窗体水平平铺问题

qq_23609065 2017-03-08 10:36:28
我的MDI窗体有三个子窗体,想打开软件时三个子窗体分上、中、下水平平铺,每个子窗体的高度可自行调整,让三个子窗体的高度加起来填满主窗体的高度,并且让每个子窗体的宽度与主窗体相同。让主窗体和子窗体能适用不同分辨率的屏幕。主窗体中有状态栏和工具栏。
感谢大侠们赐教!!!
...全文
233 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2017-03-09
  • 打赏
  • 举报
回复
还有更加简单的,代码一样意义不同
Private Sub MDIForm_Resize()
'重设3个子窗体的ZOrder次序'
Form3.Show
Form2.Show
Form1.Show
'水平排列'
Me.Arrange vbTileHorizontal
End Sub

当然你可以把 Show 换成 ZOrder,一样的效果。
不过假如子窗体被关闭了,Show 可以自动打开。
赵4老师 2017-03-09
  • 打赏
  • 举报
回复
自己动手,丰衣足食。
qq_23609065 2017-03-09
  • 打赏
  • 举报
回复
我自己做到了

'MDI窗体
Private Sub MDIForm_Load()
'显示各子窗体
Form1.Show
Form2.Show
Form3.Show
Form1.Top = 0
Form1.Left = 0
End Sub
'Form1窗体

Private Sub Form_Resize()
If WindowState = 0 Then
Width = Screen.Width
Height = 0.3 * Screen.Height
End If
End Sub
'Form2窗体
Private Sub Form_Load()
'计算该窗体的位置
Me.Top = Form1.Height
Me.Left = 0
End Sub
Private Sub Form_Resize()
If WindowState = 0 Then
Width = Screen.Width
Height = 0.3 * Screen.Height
End If
End Sub
'Form3窗体
Private Sub Form_Load()
'计算该窗体的位置
Me.Top = Form1.Height + Form2.Height
Me.Left = 0
End Sub
Private Sub Form_Resize()
If WindowState = 0 Then
Width = Screen.Width
Height = 0.255 * Screen.Height
End If
End Sub
Tiger_Zhao 2017-03-09
  • 打赏
  • 举报
回复
你说的要求那个没达到?
qq_23609065 2017-03-09
  • 打赏
  • 举报
回复
引用 2 楼 Tiger_Zhao 的回复:
按照下面的步骤创建例子: 1)新建工程; 2)添加3个普通Form,设置 MDIChild 属性为 True,WindowState 属性不要动。 3)添加1个MDIForm,设置 WindowState 属性为 2 - Maximized; 4)MDIForm窗体加上 ToolBar、StatusBar 控件,用了验证效果; 5)工程属性中设置启动项目为MDIForm1。 6)MDIForm1 的代码如下,就这么简单
Option Explicit

Private Sub MDIForm_Load()
    '打开3个子窗体'
    Form3.Show
    Form2.Show
    Form1.Show
    '水平排列,注意后打开的排在上面'
    Me.Arrange vbTileHorizontal
End Sub
三个窗体还是设计时候的样子呀,不管用
Tiger_Zhao 2017-03-09
  • 打赏
  • 举报
回复
按照下面的步骤创建例子: 1)新建工程; 2)添加3个普通Form,设置 MDIChild 属性为 True,WindowState 属性不要动。 3)添加1个MDIForm,设置 WindowState 属性为 2 - Maximized; 4)MDIForm窗体加上 ToolBar、StatusBar 控件,用了验证效果; 5)工程属性中设置启动项目为MDIForm1。 6)MDIForm1 的代码如下,就这么简单
Option Explicit

Private Sub MDIForm_Load()
    '打开3个子窗体'
    Form3.Show
    Form2.Show
    Form1.Show
    '水平排列,注意后打开的排在上面'
    Me.Arrange vbTileHorizontal
End Sub
of123 2017-03-09
  • 打赏
  • 举报
回复
按照你的需求写代码就是了,应该没有难度吧?

7,765

社区成员

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

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