MDI容器
具体步骤如下:
private void 销售ToolStripMenuItem_Click(object sender, EventArgs e)
{
VisibledForm(); Form2 f2 = new Form2(); 打开新窗口
f2.MdiParent = this;
f2.Name = "f2";
OpenForm(f2);
} private void VisibledForm()
{
foreach (Control c in panel1.Controls)
{
if (c is Form)
{
c.Visible = false;
}
}
} private void 仓库ToolStripMenuItem_Click(object sender, EventArgs e)
{
VisibledForm(); 引用方法
Form3 f3 = new Form3();
f3.MdiParent = this;
f3.Name = "f3";
OpenForm(f3);
} private void 财务ToolStripMenuItem_Click(object sender, EventArgs e)
{
VisibledForm(); 引用方法
Form4 f4 = new Form4();
f4.MdiParent = this;
f4.Name = "f4";
OpenForm(f4);
} //传一个窗体对象过来,看看有没有打开,如果开打了,则还原已打开的窗口
//如果未打开,则打开此新窗口
//参数:要验证的窗体
//返回值:无 public void OpenForm(Form fff) Form的参数fff,创建方法OpenForm
{
bool has = false;
foreach (Control c in panel1.Controls)
{
if (c is Form) 如果这个控件是窗口
{
if (c.Name == fff.Name)
{
has = true; 如果走到这说明有
fff = c as Form;
}
}
} VisibledForm();
if (has) 然后进行判断
{
//fff.WindowState = FormWindowState.Maximized; 按说应该进行还原窗口,但是,这里如果还原的话,这一步并不会走,所以不用这一步,而是直接Show出来
fff.Show();
}
else 如果这个窗口没有打开,然后Show出来,也需要调取隐藏的方法,所以把这个方法写到外边
{
fff.Parent = panel1;
fff.Show();
} } private void Form1_Load(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Name = "f2";
OpenForm(f2);
}

MDI容器的更多相关文章

  1. winform 之MDI容器

    MDI是指将多控件窗体在同一窗体中打开 1.设置:属性中IsMDIContainer:true; 窗体变为灰色成为MDI窗体容器 2.MDI中一般采用菜单作为打开方式 3.子级窗体在MDI中打开,需先 ...

  2. MDI窗体容器和权限设置.avi

    一.MDI窗体容器 MDi窗体是装Form的容器.平常Form(窗体)就是平常展示的最高级别,但是MDI比Form还高级.它可以让其它窗体在它的内部打开,无法超出它的范围 1 创建:将某个窗体的属性: ...

  3. MDI窗体容器

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

  4. C#-WinForm-MDI窗体容器、权限设置

    MDI窗体容器 - 放窗体的容器 窗体时顶级控件,是不允许放到其他的控件或窗体中的 (李献策lxc) 窗体属性中有一个属性:IsMdiContainer - 确定该窗体是否是MDI容器 在窗体中放一个 ...

  5. C# Windows - SDI和MDI应用程序

    生成MDI应用程序 MDI应用程序至少要由两个截然不同的窗口组成.第一个窗口叫做MDI容器(Container),可以在容器中显示的窗口叫做MDI子窗口. 要把应用程序的主窗口从一个窗体改为MDI容器 ...

  6. 2019-8-15C#MDI窗体实现多窗口效果

    C#MDI窗体实现多窗口效果  Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢.在Visual C#中,提供了为实现M ...

  7. WinForm窗体设置

    属性: 软件启动后在屏幕中间 StartPosition = CenterScreen取消放大按钮 MaximizeBox = false不能拖动边框 FormBorderStyle = FixedD ...

  8. 构建布局良好的Windows程序

    工具箱→菜单和工具栏菜单栏MenuStrip的类型MenuItem:菜单项TextBox:文本框ComboBoX:组合框Separato:分割线前面都有ToolStrip做前缀 Applaction. ...

  9. 第二章 构建布局良好的windows程序

    工具箱→菜单和工具栏 菜单栏 MenuStrip的类型 MenuItem:菜单项 TextBox:文本框 ComboBoX:组合框 Separato:分割线 前面都有ToolStrip做前缀 Appl ...

随机推荐

  1. TP方法中打印地址栏中所有的参数:

    print_r($this->request->param());//打印出地址栏中所携带的所有参数:

  2. labeled statement:标签语句

    foo: for (var i=0; i< 5; i++) { for (var j=0; j<5; j++) { if ( i == j ) { // 跳到 foo 的下一个循环 // ...

  3. HTML5⑥

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. idea:打包jar(原文by曲高终和寡)

    idea打包java可执行jar包   1,在项目上鼠标右键 --> Open Module Settings 2, Artifacts --> + --> JAR --> F ...

  5. Beta 冲刺 (3/7)

    Beta 冲刺 (3/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 参与开发关键词提醒部分 展示GitHu ...

  6. Java实验6

    dbq时隔这么久我总算又来更新了 这次说说一个很好玩的类,JLabel的如何改里面字的属性 label.setFont(new Font("宋体", 0 , 15)); 这个指的是 ...

  7. java基础学习之接口

    接口可以说是一个特殊的抽象类,接口里的方法都是抽象方法, 接口的特点: 1.一个类可以实现多个接口,也可以在继承一个类后继续实现多个接口(多实现间接支持了类的多继承) 2.接口可以继承另一个接口,并且 ...

  8. MySQL:视图

    视图 一.视图的概述 1. 含义:是从数据库中一个或多个表中导出的虚拟表2. 作用:①简单化 ②安全性 ③逻辑数据独立性3. 注意:一个表可以由多个视图: 二.视图的创建 1. 总的语法形式 CREA ...

  9. SIMTRACE环境搭建

    搭建simtrace环境 工具环境搭建 仅作参考,具有时效性,请以官方文档为准. 跨平台编译工具arm-elf 参考链接:https://osmocom.org/projects/baseband/w ...

  10. 支持续传功能的ASP.NET WEB API文件下载服务

    先把原文地址放上来,随后翻译