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

一、如何创建MDI窗体?

1、创建mdi主窗体

新建建立一个默认空白的Windows应用程序,在Form1窗体的属性窗口中找到IsMDIContainer 属性,设置为 True

2、创建MDI子窗体

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

3、添加代码

        Dim frm2 As New Form2Form2.Show()

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

二、显示MDI窗口列表

用过带有子窗体的程序的朋友一定知道,很多程序都带显示它它本身打开的子窗体列表的功能,那么它是怎么实现的呢

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

三、排列子窗体

你只需要在你的单击操作中填入以下代码即可

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

看一下效果图

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

Private Sub 窗体1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 窗体1ToolStripMenuItem.ClickDim frm2 As New Form2CheckForm(frm2, "Form2")frm2.WindowState = FormWindowState.NormalShowForm(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 SubElseDim x As IntegerDim frmyn As BooleanFor x = 0 To (Me.MdiChildren.Length) - 1Dim tempChild As Form = CType(Me.MdiChildren(x), Form)If tempChild.Name = MDIChildFormName Thenfrmyn = True'检测到有该MDI子窗体,设为TRUE 并退出循环Exit ForElsefrmyn = FalseEnd IfNextIf frmyn = False Then'在打开的窗体中没检测到则新建ShowForm(MDIChildForm)Else'在打开的窗体中检测到则激活Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)MDIChildFrm.Activate()  '使子窗体激活MDIChildFrm.WindowState = FormWindowState.NormalEnd IfEnd IfEnd Sub'**************************************************'*过程名称:ShowForm'*参数说明:MDIChildForm ——需创建实例的窗体'*功能说明:创建窗体实例'**************************************************Private Sub ShowForm(ByVal MDIChildForm As Form)Dim MDIChildFrm As Form = MDIChildFormMDIChildFrm.MdiParent = Me ' 定义MDI子窗体MDIChildFrm.Show() '打开窗体End SubPrivate Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClickedEnd SubPrivate Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadDim frm2 As New Form2CheckForm(frm2, "Form2")frm2.WindowState = FormWindowState.MaximizedEnd Sub
End Class

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

转载于:https://www.cnblogs.com/jinfulin/p/3797710.html

vb.net详解MDI窗体操作方法相关推荐

  1. c语言菜单选择如何用字符形式,【创客天地】计算机二级C语言、VB考试详解分析...

    原标题:[创客天地]计算机二级C语言.VB考试详解分析 01 马上就要迎来计算机二级考试了,你准备好了吗?今天助手君准备了一点C语言干货,希望对即将考试的你有所帮助.(上期刚刚推了office,有需要 ...

  2. [VB.NET]浅谈MDI窗体的多窗体编程

    ---MDI窗体和多窗体编程--- 目的:在MDI窗体内用ToolBar实现多窗体的实例,在VB.NET中显示窗体一般代码如下     Private Sub ToolBar1_ButtonClick ...

  3. vb sendmessage 详解

    转载自http://www.cnblogs.com/rosesmall/p/3248244.html SendMessage函数的常用消息及其应用(有点长,希望能对大家有所帮助) 函数原型: Decl ...

  4. vb sendmessage 详解1

    SendMessage函数的常用消息及其应用(有点长,希望能对大家有所帮助) 函数原型: Declare Function SendMessage Lib "user32" Ali ...

  5. C#中SetWindowPos函数详解 修改窗体

    [DllImport("user32.dll")] private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWnd ...

  6. 京东主图怎么保存原图_京东自营怎么做?详解京东平台操作方法

    随着2020年实体行业的受损,越来越多企业想要做出改变以打破目前的僵局.于是大家都盯上了受疫情冲击最小的电商行业.但是做电商自己完全没经验啊,该怎么办呢? 这时候就有人想到了京东自营,一个你只要往仓库 ...

  7. apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务,掌握基本操作尤其重要.下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解,希望对大家有帮助! Linux系统重启apache服务命令详 ...

  8. [vb]一些窗口消息的详解

    代码: Public Const WM_NULL = &H0 '空消息 Public Const WM_NCCREATE = &H81 '当窗口第一次被创建时,此消息在WM_CREAT ...

  9. [转]VB中资源文件.res的使用方法详解

    在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将要显示很多的用户界面元素,以及提供程序所需要的各种类型数据的存储场所.资源文件在VC应用程序中应用十分广泛,在VB应用中却 ...

最新文章

  1. 在国内安装Pytorchy以及遇到的问题
  2. vscode安装设置go
  3. 简述进程的启动、终止的方式以及如何进行进程的查看。
  4. 【体验】18650锂电池充电器体验,功能测试,18650充电测试
  5. Python取整(四舍五入、向上取整、向下取整)
  6. Keepalived+LVS
  7. 2017-07-12 周三 今日总结
  8. 个人信息保护须形成更大合力
  9. 奔图m7100dw_奔图M7100dW驱动
  10. XJOI字符串的大小关系1级19段
  11. 声纹识别技术如何助力金融反欺诈?
  12. 三种方法绘制单位圆-R语言
  13. 国科大学习资料--多媒体分析与理解(卢汉请)-2019期末考试题
  14. 删除Excel数据中的空格
  15. 在鹅厂的第5219天,我毕业了...
  16. 游戏服务器为什么老被攻击?被攻击了的一些常见的处理方法
  17. python中查找文件当前位置_如何查找当前目录和文件目录
  18. android11 定位权限页面不显示始终允许
  19. HTTP 错误 404.3 - Not Found由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
  20. mac kendryte使用model-cmpiler运行kpu-demo

热门文章

  1. a - 数据结构实验之串一:kmp简单应用_【在线教学示范课案例】数据结构(刘航)...
  2. python字符串排序_Python-如何对字符串列表进行排序?
  3. 依赖: ros-melodic-desktop 但是它将不会被安装_npm系列之依赖管理
  4. android size_t在哪个头文件,size_t
  5. 腾讯官方游戏《陆战之王 3D坦克大战》
  6. python lock_python多线程Lock和RLock的区别
  7. mysql中如何卸载插件_Eclipse中如何卸载插件
  8. 最优隐神经元数目 算法 matlab,BP算法的改进在Matlab的实现研究
  9. [渝粤教育] 郑州大学 互联网国际政治学 参考 资料
  10. 【渝粤教育】 国家开放大学2020年春季 1039高级财务会计 参考试题