早在敲学生管理系统的时候,青山师哥就跟我说过  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. HTTP MIME类型即HttpResponse.ContentType属性值列表

    MIME-Typ Dateiendung(en) Bedeutung application/acad *.dwg AutoCAD-Dateien (nach NCSA) application/ap ...

  2. (笔记)angular 单选选项卡

  3. Eclipse Egit 安装

    help->Install new software-> 在 work within 中输入以下网址 安装地址: http://download.eclipse.org/egit/upda ...

  4. pect-shell中的自动交互

    这是我在ST写的自动登陆ssh的脚本, 分两个文件 文件1: sssh #!/bin/bash #xql 2011/01/4#auto ssh 138.198.230.170 case $1 in & ...

  5. CentOS6.5安装readline时报错:/usr/bin/ld : cannot find -lncurses

    CentOS6.5安装readline时报错:/usr/bin/ld : cannot find -lncurses 解决方法: 安装ncurses-devel,输入命令: #yum install ...

  6. JDBC数据库连接(MySQL为例)

    1.什么是JDBC?有什么作用? Java Data Base Connectivity  Java数据库连接协议 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问. 他提 ...

  7. CSS3实现轮播图效果

    CSS3实现轮播图主要是由css:background-position和css3:animation实现.且实现此轮播需要一张四个图横着相连的图片. 注(Internet Explorer 10.F ...

  8. Session为null 问题

    问题描述: var svode=HttpContext.Current.Session["VCode"].ToString(); //调试时候发现 svode ==null // ...

  9. 使用WMIC永久设置你的环境变量

    关于wmic,引用一下这位哥们儿的话http://technet.microsoft.com/en-us/library/bb742610.aspx: WMIC扩展WMI(Windows Manage ...

  10. Delphi XE5 for android 调用Java类库必看的文件

    C:\Program Files\Embarcadero\RAD Studio\12.0\source\rtl\android 的目录 Androidapi.AppGlue.pasAndroidapi ...