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事件(对于要打印的每一页触发一次 ...
随机推荐
- TCP/IP_网络基础知识
今天看到k8s的网络,顿感网络知识不是特别扎实,立马回头补一下Tcp-ip知识,顺便记录下学习的过程: 计算机与网络发展的7个阶段: 批处理时代(计算机按照顺序处理,50年代)->分时系统时代( ...
- [Unity算法]斜抛运动(变种)
之前的斜抛运动,如果运动到游戏中,显然是太呆板了,那么可以试着加入一些效果,让它看起来更生动一些,类似游戏中的击飞或者掉落效果: 1.在达到最高点的时间点±X的时间段内,会有“减速”效果,形成一种在空 ...
- JavaScript Object 对象
Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它.因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScrip ...
- Robot Operating System (ROS)学习笔记2---使用smartcar进行仿真
搭建环境:XMWare Ubuntu14.04 ROS(indigo) 转载自古月居 转载连接:http://www.guyuehome.com/248 一.模型完善 文件夹urdf下,创建ga ...
- JAVA获取文件夹下所有的文件
package com.test; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; im ...
- putty使用秘钥对登录百度云系统全过程
使用秘钥对登录百度云系统全过程 1在百度云生成秘钥对 并且绑定要登录的IP 1)创建 2) 创建成功后,会自动下载私钥到本地 3)绑定 4)绑定完毕 2把下载到本地的私钥使用putty key gen ...
- 21纯 CSS 创作文本滑动特效的 UI 界面
原文地址:https://segmentfault.com/a/1190000014842868 简化版地址:https://scrimba.com/c/cgaZLh6 感想:笨蛋,想不出自己的东西. ...
- Maven传递依赖的范围
calsspath:仅加载本工程中的配置文件 classpath*:既要加载本工程中配置文件,也要加载jar包中的配置文件
- OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果
OpenGL ES平移矩阵和旋转矩阵的左乘与右乘 在OpenGL .OpenGL ES中矩阵起着举足轻重的作用,而矩阵之间的左乘与右乘在效果上是不同的. 一.先平移后旋转 场景效果:人绕树旋转. 原理 ...
- vs2008发布项目失败的解决方法
解决办法: 要知道发布是怎么失败的,用组合键"Ctrl+Alt+O"即可,仔细查看信息可发现有没发布成功的详细提示,然后在资源管理器中找到那一项,删除或排除到项目外,重新生成之后再 ...