MDI窗体
1.设置父窗体
使用MDI窗体,需要先将父窗体的IsMdiContainer属性设置为True

2.生成用于MDI子窗体的窗体
1 frmTemp f1 = new frmTemp();
f1.Text = "窗体1";
f1.MdiParent = this;
f1.Show(); frmTemp f2 = new frmTemp();
f2.Text = "窗体2";
8 f2.MdiParent = this;
f2.Show(); 11 frmTemp f3 = new frmTemp();
12 f3.Text = "窗体3";
f3.MdiParent = this;
14 f3.Show();
3.排列子窗体
层叠排列
LayoutMdi(MdiLayout.Cascade);

水平平铺
1 LayoutMdi(MdiLayout.TileHorizontal);

垂直排列
LayoutMdi(MdiLayout.TileVertical);

***********************************分割线**********************************
4.对于MDI,常用的是在父窗体中加载MDI子窗体,并且经常会在子窗体之间切换,实现的效果如下

1)创建两个不同的子窗体,并分别设置窗体的BackgroundImage,用于区分窗体
2)通过菜单栏的功能,选择对应的窗体
3)对于窗体,判断之前是否存在,进行不通的操作
代码如下:
private void 企鹅ToolStripMenuItem_Click(object sender, EventArgs e)
{
//窗体没有创建或者窗体被释放
if (f2 == null || f2.IsDisposed == true)
{
f2 = new frmTemp2();
f2.FormBorderStyle = FormBorderStyle.None;
f2.MdiParent = this; //设置窗体的MDI父窗体
f2.Parent = this.panel1;//设置控件的父容器
f2.Dock = DockStyle.Fill;
f2.Show();
if (f1 != null)
f1.SendToBack();
}
else
{
f2.Activate();//使窗体获得焦点
f2.BringToFront();
}
}
所有的示例程序链接如下:
http://download.csdn.net/detail/u010312811/9446887
更新1:(因为程序修改不大,没有动之前上传的代码)
如何解决界面之间切换的闪烁问题:
修改两个MDI子界面的构造函数,如下:
this.SetStyle(
ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer, true);
this.UpdateStyles();
效果图如下:

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 ...
- winform(MDI窗体容器、权限设置)
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
随机推荐
- 【8-30】oracle数据库学习
oracle安装:将两个文件合并 全局用户:achievec 口令:Admin123456 用户:scott 口令:tiger oracle开发工具: sqlplusw 和sqlplus和pl/sql ...
- CF451D Count Good Substrings (DP)
Codeforces Round #258 (Div. 2) Count Good Substrings D. Count Good Substrings time limit per test 2 ...
- golang笔记——IDE
可选方案有 Lite IDE\GoSublime\Visual Studio Code\Goclipse\Vim 1.Lite IDE 这是国人开发的开源且跨平台的 golang 专属IDE,也算是目 ...
- 深入浅出的javascript的正则表达式学习教程
深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...
- document.all的详细解释(document.all基本上所有浏览器可用!)
从何而来从IE4开始IE的object model才增加了document.all对象,MSDN中也对 Object.all 有详细的说明,Object.all是个HTMLCollection,不是数 ...
- 【翻译】Tomcat 6.0 安装与启动
本篇来自Tomcat6官方文档:运行手册running.txt 有很多以前都没注意的问题,这里正好学习下. 系列文章来自:<Tomcat官方文档翻译> Tomcat的安装 1 确认本机是否 ...
- python 100例 (持续更新)
1.题目:列表转换为字典. 程序源代码: 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 i = ['a', 'b'] 5 l = [1, ...
- 清北暑假模拟day2 将
/* 爆搜,正解弃坑 */ #include<iostream> #include<cstdio> #include<string> #include<cst ...
- Window环境下搭建MyEclipse+Tomcat+MAVEN+SVN
1.JDK的安装 首先下载JDK,这个从sun公司官网(http://www.oracle.com/)可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置 ...
- 搭建 Windows Server 2012 FTP 服务器
在Server2012打开 服务器管理器,选择 添加角色与功能,添加Web服务下的FTP服务器 单击安装 我们现在C盘创建一个名字为FTP的文件夹,里面创建一个ftp的文件,做测试用,如图 打开服务器 ...