当前位置:知识百科 > 正文

vb.net打开子窗体

更新时间:2026-03-18 10:35 阅读量:42

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打开子窗体相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!