MDI窗体 的再度思考
早在敲学生管理系统的时候,青山师哥就跟我说过 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窗体 的再度思考的更多相关文章
- MDI窗体容器--2016年12月15日
MDI窗体容器 多文档界面(Multiple-Document Interface)简称MDI窗体.MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中.MDI窗体中通常有包含子菜单的窗口菜单, ...
- Winform MDI窗体容器、权限、简单通讯
MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...
- 小菜学习Winform(四)MDI窗体(附示例)
前言 在做winfrom项目的时候我们可能会用到嵌套窗体,就是说一个容器中有多个窗体,可以分别管理和应用这些窗体,.net中提供了一种机制就是MDI,可能大家都会用,这边就简单的介绍下. 简单应用 w ...
- Winform MDI窗体容器,权限以及简单通讯
MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...
- Winform MDI窗体容器 权限 简单通讯
MDI窗体容器 权限 using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- MDI窗体容器、权限设置
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
- C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件
一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...
- MDI窗体容器 权限设置
MDI窗体容器:它可以让其它窗体在它的内部打开,无法超出它的范围将某个窗体的属性:IsMdiContainer设置为true - 窗口样式如何将其它窗体在它的内部打开?窗体对象名.MdiParent ...
- MDI窗体
1.设置父窗体 使用MDI窗体,需要先将父窗体的IsMdiContainer属性设置为True 2.生成用于MDI子窗体的窗体 1 frmTemp f1 = new frmTemp(); f1.Tex ...
随机推荐
- JS跳转到顶部的方法
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>J ...
- (笔记)angular选中变色
- Android SQLite数据储存方式
SQLiteOpenHelper 类 用SQLiteOpenHelper 类中的 getWritableDatabase()和getReadableDatabase()方法可以获得数据库的引用. 为了 ...
- projecteuler Sum square difference
The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square of ...
- .NET中的属性
1.What?什么是属性 属性是对字段的封装.当类中有了一个字段以后,为了控制这个字段对外的一些表现(例如可访问性,是只读?只写?或者对自读赋值做一些必要的验证等等)我们把这个字段私有化( ...
- Elasticsearch的PHP的API使用(一)
前提:在服务器上安装Elasticsearch (host:192.168.1.10) http://192.168.1.10:9200?_search?pretty 1:安装PHP的Elast ...
- ctags对部分目录生成tags
最近在研究Tiny6410上的uboot移植,看uboot源码时,生成tags文件用的是最粗暴的方法:“ctags -R *”,由于某些函数在各个平台下都有实现,导致在用“g+]”跳转到该函数的定义时 ...
- Mysql连接测试代码
<?php $link=mysql_connect('localhost','root','htuidc'); if($link) echo "success"; ?>
- datagridview下拉框
下面介绍Winform中DataGridView的DataGridViewComboBoxColumn的使用方法: //首先获取数据源 //自己建立的静态数据源,你也可以从数据库读取 DataTabl ...
- firefox 中碰到的一个小坑
情况描述: 在一个处于正常文档流的div中,里面有一部分文字,还有个有浮动的块, 上代码 HTML: <div class="container"> this is ...