早在敲学生管理系统的时候,青山师哥就跟我说过  MDI 窗体 跟 子窗体的事情,当时只是简单的查询、小小的用了一下,没有太在意、

当再次面对着这个东西更深层的时候才想起师哥那句话、“好好研究一下这个东西吧,以后会经常用的。”,这下记住了,学长的话一定要好好的听、好好的实践...

MDI多窗体程序由MDI主窗体与MDI子窗体组成。通常在主窗体内设计下拉式菜单或工具栏,执行菜单项命令或者工具栏中按钮命令时调用子窗体程序,被打开的子窗体界面将被限制在主窗体的用户工作区内。下面依次介绍创建MDI主窗体与子窗体的方法,及在主窗体内调用子窗体程序的方法。

一、创建MDI主窗体

1、创建MDI主窗体

(1)执行菜单命令:工程 | 添加MDI窗体,出现“添加MDI窗体”对话框。
          (2)选择“新建”或使用“现存”窗体,单击“打开”按钮后出现MDI主窗体界面。

2、将MDI主窗体设为工程的启动窗体

(1)执行菜单命令:工程 | 工程属性,出现工程属性对话框。
          (2)在对话框的通用选项卡中单击启动对象下拉按钮,选择MDI窗体名,则MDI窗体成为启动窗口。

  注意:一个应用程序只能有一个MDI窗体,如果工程已经有了一个MDI窗体,则该工程菜单上的添加MDI窗体命令就不可使用。

二、建立MDI子窗体

1、创建MDI子窗体的方法

(1)工程中创建一个新的普通窗体;
        (2)将MDIChild属性设为True。

2、MDI窗体运行时的特性

(1)所有子窗体都显示在MDI窗体的工作空间内。
       (2)当最小化一个子窗体时,它的图标将显示在MDI窗体上而不是任务栏中。
       (3)当最大化一个子窗体时,它的标题会与MDI窗体的标题组合在一起并显示于MDI标题栏上。
       (4)通过设定AutoShowChildren属性,子窗体可以在窗体加载时自动显示或自动隐藏。
       (5)活动子窗体的菜单(若有)将显示在MDI窗体的菜单栏中,而不是显示在子窗体中。

三、MDI窗口菜单设计

  所谓“窗口”菜单是指专门用于显示已打开子窗体的标题名称,并能对已打开子窗体进行“层叠”、“平铺”、“垂直”与“排列图标”等项操作的菜单项。

1、创建“窗口”菜单项

  当某个菜单项的“显示窗口列表”复选框有效时(即 WindowsList=True),所有已打开子窗体的标题名称将出现在该菜单项的下方。

2、“窗口”一级子菜单项的设计

  在菜单编辑器中,给MDI“窗口”菜单添加“层叠”、“平铺”、“垂直”与“排列”四个一级子菜单项。然后使用MDI窗体的Arrange方法实现“层叠”、“平铺”、“垂直”与“排列”的功能。
Arrange方法的语法:<窗体名>.Arrange( 实参 )

如果是在学习的初步,可以更形象的理解为 MDI其实就可以理解成是老爸和儿子的关系,儿子总是听老子的话,子窗体不能超出父窗体,无论怎么移动都只能在父窗体里面!大小、缩放等..

聪明人、是拿别人撞得头破血流得来的经验来充实自己、米老师的话要听、师哥的话也要听啊.....

 

MDI窗体 的再度思考的更多相关文章

  1. MDI窗体容器--2016年12月15日

    MDI窗体容器 多文档界面(Multiple-Document Interface)简称MDI窗体.MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中.MDI窗体中通常有包含子菜单的窗口菜单, ...

  2. Winform MDI窗体容器、权限、简单通讯

    MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...

  3. 小菜学习Winform(四)MDI窗体(附示例)

    前言 在做winfrom项目的时候我们可能会用到嵌套窗体,就是说一个容器中有多个窗体,可以分别管理和应用这些窗体,.net中提供了一种机制就是MDI,可能大家都会用,这边就简单的介绍下. 简单应用 w ...

  4. Winform MDI窗体容器,权限以及简单通讯

    MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...

  5. Winform MDI窗体容器 权限 简单通讯

    MDI窗体容器 权限  using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...

  6. MDI窗体容器、权限设置

    一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...

  7. C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件

    一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...

  8. MDI窗体容器 权限设置

    MDI窗体容器:它可以让其它窗体在它的内部打开,无法超出它的范围将某个窗体的属性:IsMdiContainer设置为true - 窗口样式如何将其它窗体在它的内部打开?窗体对象名.MdiParent ...

  9. MDI窗体

    1.设置父窗体 使用MDI窗体,需要先将父窗体的IsMdiContainer属性设置为True 2.生成用于MDI子窗体的窗体 1 frmTemp f1 = new frmTemp(); f1.Tex ...

随机推荐

  1. MSSQL Server Transaction 数据库事务回滚的用法

    使用的表结构如下:         Commit TransAction    Else        Rollback TransAction/*    自定义一个变量来判断最后是否发生过错误.*/ ...

  2. Windows 10 LNK File分析

    前情提要:警方接获线报,黑道份子阿强涉及制造与贩卖毒品,警方在其住处扣得笔记本电脑及数个U盘,送往实验室进行取证分析. 取证人员对证物进行证物镜像制作,并进行证物处理(Evidence Process ...

  3. Linux命令之type

    1:linux命令可以分为很多类,其中常见得类型: (1):builtin --内置命令 (2):alias --命令别名 (3):file --外部命令 具体有哪些内置命令以及内置命令各个用法: [ ...

  4. leetcode 14

    14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array ...

  5. poj2000

    为了凑今天的数,大水题.不解释了,说来惭愧. #include <stdio.h> int main(){ int n; int i,cnt,j; int tot; while(~scan ...

  6. 2搭建Android开发环境

    这一章主要是讲解如何搭建Android开发环境,需要准备的工具有: (1)   JDK6或以上的版本: (2)   Eclipse (3)   ADT(用于开发Android应用程序) (4)   C ...

  7. 用Zend Studio12 导入在workspace中的项目

    第一步: 文件(file)->新建(NEW)->其他(other) 第二步: 在打开的对话框里选择 常规(Genneral)->项目(Project) 第三步: 在打开的对话框输入项 ...

  8. 【转载】UML用例图

    用例图主要用来描述“用户.需求.系统功能单元”之间的关系.它展示了一个外部用户能够观察到的系统功能模型图. [用途]:帮助开发团队以一种可视化的方式理解系统的功能需求. 用例图所包含的元素如下: 1. ...

  9. CentOS 6.4安装Kangle面板

    kangle web server一键安装包是一个用Linux Shell编写的可以为CentOS 6 VPS(VDS)或独立主机安装kangle web server(kangle,easypane ...

  10. C语言中的关键字

    1.C语言中的关键字都有实际的意义. 2.C语言中的23个关键字如下: char:声明字符型变量. short:声明短整型变量. int:声明整型变量. long:声明长整型变量. float:声明浮 ...