vb.net获取子窗体 vbnet mdi窗体

如何给VB.NET窗体添加子窗体?直接添加一个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.Length1 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
vb.net中子窗体的问题加载内容本身与是否子窗体没有关系 。
请你检查一下你加载的内容是不是存在 。
下面代码,不管是否子窗体,都是正常的:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add("123")
ComboBox1.Items.Add("223")
ComboBox1.SelectedIndex = 0
End Sub
你可以下载附件参考一下!
VB如何创建主窗体的子窗体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、运行程序,看到设置已经成功 。
【vb.net获取子窗体 vbnet mdi窗体】二、使用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

推荐阅读