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事件(对于要打印的每一页触发一次 ...
随机推荐
- [SDOI2016]生成魔咒(后缀自动机)
/* 水题, 根据性质做就行, nq不会对答案产生贡献, 那么只算p的贡献就好了 */ #include<cstdio> #include<algorithm> #includ ...
- mysql存储过程的编写
1.MySQL 新增存储过程,因为mysql默认以:为分隔符,该分隔符会使mysql自动执行sql语句,故需要将分隔符修改下,下面通过DELIMITER设为$$,然后编写SQL,编写完成再将:设为分隔 ...
- 【死磕 Spring】—— IoC 之深入理解 Spring IoC
本文主要基于 Spring 5.0.6.RELEASE 摘要: 原创出处 http://svip.iocoder.cn/Spring/IoC-intro/ 在一开始学习 Spring 的时候,我们就接 ...
- sql server 给表加说明,给列/字段加说明
--sql server给表加说明: --banner EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Banner ...
- Linux free -m 详解命令
如下显示free是显示的当前内存的使用,-m的意思是M字节来显示内容.我们来一起看看. 1 2 3 4 5 6 $ free -m total used ...
- 0. 前言【从零开始学Spring Boot】
[视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...
- django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)
常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...
- day7--面向对象进阶(内含反射和item系列)
一面向对象的结构和成员 1.1面向对象的结构 class A: company_name = '老男孩教育' # 静态变量(静态字段) __iphone = '1353333xxxx' # 私有静态变 ...
- python对象序列化pickle
import pickle class A: users = {} c = 1 def get_self(self): return self def n(self): return 1 def pi ...
- 使用Hexo + Github Pages搭建个人独立博客
使用Hexo + Github Pages搭建个人独立博客 https://linghucong.js.org/2016/04/15/2016-04-15-hexo-github-pages-blog ...