十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
新建一个MDI窗体.(俗称的父窗体)
10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有灵丘免费网站建设让你可以放心的选择与我们合作。
然后把你想要变成子窗体的窗体(晕了)的MDIChild属性改成True.
一个工程最多只能有一个MDI窗体.
要确立父子窗体,那子窗体必须继承父窗体。实例化子窗体对象调用Show()方法。
希望采纳
vb6建立主窗体的子窗体有两种方法:
第一种方法是建立一个MDI窗体,然后把普通的form窗体设置成它的子窗体。
第二种方法是使用Windows API设置一个普通form窗体为另外一普通窗体的子窗体。
一、先来看看如何建立MDI窗体的子窗体:
1、启动vb6,新建一个标准EXE工程。
2、在“工程”菜单里选择“添加MDI窗体”,
点击“打开”,添加了一个MDIForm1窗体,
这步也可以工程窗口的窗体图标上右键完成。
3、在“工程”菜单里选择“XXX 属性”,
在弹出的窗口里把启动对象设成MDIForm1。
4、在form1的属性窗口里,把MDIChild属性设置为True。
5、在Private Sub MDIForm_Load()过程里添加form1.show。
6、运行程序,看到设置已经成功。
二、使用Windows API建立子窗体:
1、1、启动vb6,新建一个标准EXE工程。
2、在“工程”菜单里选择“添加窗体”,
点击“打开”,添加了一个form2窗体,
这步也可以工程窗口的窗体图标上右键完成。
3、双击form1窗体,在通用里加入以下windows API:
Private Declare Function SetParent Lib "user32.dll" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
4、在form1的Private Sub Form_Load()过程里加入
Form2.Show
SetParent Form2.hWnd, Form1.hWnd
Form2.Move 0, 0
5、运行程序,可以看form2已经是form1的子窗体了。
6、完整程序代码如下:
Option Explicit
Private Declare Function SetParent Lib "user32.dll" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Form2.Show
SetParent Form2.hWnd, Form1.hWnd
Form2.Move 0, 0
End Sub
直接添加一个MID父窗体或在已有窗体的属性中找到IsMDIContainer属性,然后设置为True,然后创建第二个窗体 ,需要加载子窗体的时候:
Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()
Public Shared Sub CheckMDIChildForm(ByVal MDIForm As Windows.Forms.Form, ByVal MDIChildForm As Windows.Forms.Form, ByVal MDIChildFormName As String)
If MDIForm.MdiChildren.Length 1 Then
'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
Dim MDIChildFrm As Windows.Forms.Form = MDIChildForm ' 定义MDI子窗体
MDIChildFrm.MdiParent = MDIForm '指定父窗体
MDIChildFrm.Show() '打开窗体
Exit Sub
Else
Dim x As Integer
Dim frmyn As Boolean
For x = 0 To (MDIForm.MdiChildren.Length) - 1
Dim tempChild As Windows.Forms.Form = CType(MDIForm.MdiChildren(x), Windows.Forms.Form)
If tempChild.Name = MDIChildFormName Then
'检测到有该MDI子窗体,设为激活 并退出循环
frmyn = True
tempChild.BringToFront()
Exit For
Else
frmyn = False
End If
Next
If Not frmyn Then
'在打开的窗体中没检测到则新建
Dim MDIChildFrm As Windows.Forms.Form = MDIChildForm ' 定义MDI子窗体
MDIChildFrm.MdiParent = MDIForm '指定父窗体
MDIChildFrm.Show() '打开窗体
End If
End If
End Sub
是窗体运行时候自动生成一个窗体,还是你在编写时候手动加?
如果是已经存在的form2, 你可以在form2 load中 写 me.mdiparent =form1 或者在 form1 中写me.mdichildform = form2
如果是在运行时新建的话,可以这样写
Dim form3 As New Form3
form3.MdiParent = Me
.....
其他属性值
.....
form3.Show()