vb.net打开子窗体
VB重复打开子窗体
VB.NET中,在访问窗体之前,你必须进行窗体实例化,然后才能打开,如:Dim frm1 As New Form1' frm1.MdiParent = Me ' 定义MDI子窗体frm.Show() '打开窗体如果在项目中有多处代码访问同一窗体,都这样的话,则会创建出
VB.NET中,在访问窗体之前,你必须进行窗体实例化,然后才能打开,如:
Dim frm1 As New Form1
' frm1.MdiParent = Me ' 定义MDI子窗体
frm.Show() '打开窗体
如果在项目中有多处代码访问同一窗体,都这样的话,则会创建出不同的实例.如重防止重复打开MDI子窗体的实例呢?下面的代码可以帮你完成:
Dim frm1As New Form1
CheckForm(frm1, "Form1")
'*****************************************************************************'*过程名称:CheckForm
'*参数说明:MDIChildForm需检测的窗体;MDIChildFormName 检测窗体的名字
'*功能说明:首先检测是否有MDI子窗体,如果没有,则创该MDI子窗体的窗体实例
'* 如果有,则检测当中有没有其窗体实例,有则激活;没有则创建其窗体实例
'*****************************************************************************
Private Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String)
If Me.MdiChildren.Length 1 Then
'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
ShowForm(MDIChildForm )
Exit Sub
Else
Dim x As Integer
Dim frmyn As Boolean
For x = 0 To (Me.MdiChildren.Length) - 1
Dim tempChild As Form = CType(Me.MdiChildren(x), Form)
If tempChild.Name = MDIChildFormName Then
frmyn = True
'检测到有该MDI子窗体,设为TRUE 并退出循环
Exit For
frmyn = False
End If
Next
If frmyn = False Then
'在打开的窗体中没检测到则新建
ShowForm(tempForm)
'在打开的窗体中检测到则激活
Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
MDIChildFrm .Activate()
End Sub
'**************************************************
'*过程名称:ShowForm
'*参数说明:MDIChildForm 需创建实例的窗体
'*功能说明:创建窗体实例
Private Sub ShowForm(ByVal MDIChildForm As Form)
Dim MDIChildFrm As Form = MDIChildForm
MDIChildFrm.MdiParent = Me ' 定义MDI子窗体
MDIChildFrm.Show() '打开窗体
在VB.NET中,有一父窗体.启动子窗体.用鼠标拖动子窗体在父窗体中移动.现想限制父窗体移动位置,
首先设置父窗体属性IsMdiContainer为True,然后在父窗体打开子窗体的事件中:
ChildForm cf = new ChildForm();
cf.MdiParent = this;
cf.Show();
就可以了
如何给VB.NET窗体添加子窗体?
直接添加一个MID父窗体或在已有窗体的属性中找到IsMDIContainer属性,然后设置为True,然后创建第二个窗体 ,需要加载子窗体的时候:
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
vb.net 怎么同时打开多个窗口?
VB.net实现打开子窗体后父窗体不可用,代码应该怎么写?
在VB.NET中,form1为父窗体,form3为子窗体,在父窗体中添加一菜单,用菜单打开子窗体,代码如下
我只问一点
父窗体
的
MdiParent属性
是否选择了true
以上就是精聚百科网小编为大家整理的vb.net打开子窗体相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
