MDI窗体容器
Mdi是一个窗体容器控件,直接在新建好的窗体里面,将此窗体设置为Mdi容器,开启了Mdi容器的窗体里面,如果有点击事件打开新窗体,则这些新窗体会在此窗体内部的Mdi容器中打开
操作步骤:
1.首先先新建一个窗体,将此窗体的IsMdiContainer改为true,这样,此窗体的Mdi容器就会开启了

2.然后再这个窗体中设置按钮,点击后弹出新窗体,再添加窗体,作为点击后弹出的窗体

3.写一下两个按钮的点击事件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace MDI窗体
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} //主窗体“销售模块”的点击事件,弹出一个新窗体
private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
{ bool has = false;//定义一个bool类型的变量,默认false,用来判断是否已开启过此窗体
Form2 f2 = new Form2();//实例化Form2窗体
foreach (Form f in this.MdiChildren)//遍历一下所有mdi容器里的From窗体,MdiChildren获取MDI子窗体的数组
{
if (f.Name == f2.Name)//如果所有窗体里面已经有一个和新开窗体名称相同的
{
has = true;//bool变量为true
f.Show();//则打开原窗体
f2.Close();//关闭新开窗体,此写法是为了同一按钮点击多次会重复弹出多个相同窗体
}
}
if (has == true) //如果已经有了和新开窗体同名的窗体并且还有其他窗体开启的情况下
{
foreach (Form f in this.MdiChildren)
{
if (f.Name != f2.Name)//则将窗体中不和新窗体同名的窗体全部隐藏掉
{
f.Hide();
}
}
}
else//如果点击后是一个新的窗体,之前没有开启过
{
f2.WindowState = FormWindowState.Maximized;//f2的窗口状态打开就是最大化,以免漏出Mdi容器底色,影响美观
f2.MdiParent = this;//f2的父窗体为这个MDI容器
f2.Parent = panel1;//在设计界面添加一个panel容器控件,将窗体放在里面,可以设置窗体的最大、小化和关闭按钮隐藏
f2.Show();
}
} private void 仓库模块ToolStripMenuItem_Click(object sender, EventArgs e)
{ bool has1 = false;
Form3 f3 = new Form3();
foreach (Form f in this.MdiChildren)
{
if (f.Name == f3.Name)
{
has1 = true;
f.Show();
f3.Close();
}
}
if (has1 == true)
{
foreach (Form f in this.MdiChildren)
{
if (f.Name != f3.Name)
{
f.Hide();
}
}
}
else
{
f3.WindowState = FormWindowState.Maximized;
f3.MdiParent = this;
f3.Parent = panel1;
f3.Show();
}
}
4.将两个新窗体设置为无边框,使整个界面更加清晰美观


MDI窗体容器的更多相关文章
- MDI窗体容器--2016年12月15日
MDI窗体容器 多文档界面(Multiple-Document Interface)简称MDI窗体.MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中.MDI窗体中通常有包含子菜单的窗口菜单, ...
- Winform MDI窗体容器、权限、简单通讯
MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...
- 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)如何将其它窗体在它的内 ...
- MDI窗体容器 权限设置
MDI窗体容器:它可以让其它窗体在它的内部打开,无法超出它的范围将某个窗体的属性:IsMdiContainer设置为true - 窗口样式如何将其它窗体在它的内部打开?窗体对象名.MdiParent ...
- winform(MDI窗体容器、权限设置)
一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内 ...
- MDI窗体容器和权限设置.avi
一.MDI窗体容器 MDi窗体是装Form的容器.平常Form(窗体)就是平常展示的最高级别,但是MDI比Form还高级.它可以让其它窗体在它的内部打开,无法超出它的范围 1 创建:将某个窗体的属性: ...
- 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
一.打印控件 第一步先把打印对象搞出来. - printDocument 打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次 ...
随机推荐
- 有关cookies与session的详细信息
COOKIES与SESSION 详细信息参考:https://www.cnblogs.com/linguoguo/p/5106618.html 会话(Session)跟踪是Web程序中常用的技术,用来 ...
- PYTHON语言书库
<SELENIUM 2 自动化测试实战 基于PYTHON语言>pdf 附下载链接 本书下载链接:https://pan.baidu.com/s/1A1s6UHecXd1Z465zbLumh ...
- js数据类型 --运算符
基本数据类型: number: var a=1; string: var str='123'; boolean: var b1=false; null:var c1=null; //打印结果为 obj ...
- VS使用GUID(UUID的基础知识)
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定. UU ...
- [Lua]弱引用table
参考链接: http://www.benmutou.com/archives/1808 一.强引用table lua中的table是引用类型,更准确地说,是强引用类型.如下第二段代码,在内存中有一个{ ...
- Unity3D Update() 和 FixedUpdate()区别
Unity3D中 Update()与FixedUpdate()的区别是什么呢?从字面上理解,它们都是在更新时会被调用,并且会循环的调用.但是Update会在每次渲 染新的一帧时,被调用.而FixedU ...
- mysql decode encode 乱码问题
帮网友解决了一个问题,感觉还是挺好的. 问题是这样的: 问个问题:为什么我mysql中加密和解密出来的字段值不一样?AES_ENCRYPT和 AES_DECRYPT 但是解密出来就不对了 有时候 ...
- Timer TimerTask schedule scheduleAtFixedRate
jdk 自带的 timer 框架是有缺陷的, 其功能简单,而且有时候它的api 不好理解. import java.util.Date; import java.util.Timer; import ...
- WebForm(response内置函数)#转
利用提供的内置对象,可以实现页面之间的数据传递及实现一些特定的功能,如:缓冲输出,页面重定向等等. Response :响应,反应 Request:请求 Server:服务器 Application: ...
- 通过HTTP请求响应过程了解HTTP协议
通过HTTP请求响应过程了解HTTP协议 http://www.cnblogs.com/YeChing/p/6337378.html