vb.net详解MDI窗体操作方法

MDI窗体可以避免打开窗体的时候被无数个子窗体困扰,我将为大家一一的介绍一下vb.net中MDI窗体的操作方法

一、如何vb.net教程
创建MDI窗体?
1、创建mdi主窗体
新建建立一个默认空白的Windows应用c#教程程序,在Form1窗体的属性窗口中找到IsMDIContainer 属性,设置为 True
在这里插入图片描述

2、创建MDI子窗体
在vb.net中,mdi子窗体就是普通的窗体,无需更改其属性。所有直接新建一个Form2

3、添加代码

Dim frm2 As New Form2
Form2.Show()

此时你只需要简单的实例化一下显示出来就python基础教程可以了,非常简单吧。

二、显示MDI窗口列表
用过带有子窗体的程序的朋友一定知道,很多程序都带显示它它本身打开的子窗体列表的功能,那么它是怎么实现的呢
在这里插入图片描述

现在在父窗体中修改你的MenuScript1控件的MdiWinddowListItem属性为你要设置的菜单即可。

在这里插入图片描述

三、排列子窗体
你只需要在你的单击操作中填入以下代码即可

 Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
        Me.LayoutMdi(MdiLayout.TileHorizontal) '水平平铺
    End Sub
 
    Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click
        Me.LayoutMdi(MdiLayout.TileVertical) '垂直平铺
    End Sub
 
    Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
        Me.LayoutMdi(MdiLayout.Cascade) '层叠
    End Sub

看一下效果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、VB.NET 如何防止重复打开MDI子窗体?

Private Sub 窗体1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 窗体1ToolStripMenuItem.Click
        Dim frm2 As New Form2
        CheckForm(frm2, "Form2")
        frm2.WindowState = FormWindowState.Normal
        ShowForm(Form2)
    End Sub
 
    '*****************************************************************************
    '*过程名称: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
                Else
                    frmyn = False
                End If
            Next
            If frmyn = False Then
                '在打开的窗体中没检测到则新建
                ShowForm(MDIChildForm)
            Else
                '在打开的窗体中检测到则激活
                Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
                MDIChildFrm.Activate()  '使子窗体激活
                MDIChildFrm.WindowState = FormWindowState.Normal
            End If
        End If
    End Sub
 
    '**************************************************
    '*过程名称:ShowForm
    '*参数说明:MDIChildForm ——需创建实例的窗体
    '*功能说明:创建窗体实例
    '**************************************************
    Private Sub ShowForm(ByVal MDIChildForm As Form)
        Dim MDIChildFrm As Form = MDIChildForm
        MDIChildFrm.MdiParent = Me ' 定义MDI子窗体
        MDIChildFrm.Show() '打开窗体
    End Sub
 
 
    Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
 
    End Sub
 
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim frm2 As New Form2
        CheckForm(frm2, "Form2")
        frm2.WindowState = FormWindowState.Maximized
    End Sub
End Class

好了,关于MDI子窗体的先介绍到这,有什么不足或者不正确的地方,提出来一起交流。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值