精华内容
下载资源
问答
  • MDI窗体控制,禁止调整大小,禁用最大化及最小化按钮。
  • C#创建MDI窗体实例

    2016-02-28 17:08:18
    MDI窗体的创建,窗体的排列,不通子窗体之间的切换
  • 附件中包含一个C#WinForm中父MDI窗体不重复打开子窗体的案例,父窗体在打开子窗体之前先判断子窗体是否存在,若存在则激活;若不存在,实例化并打开子窗体。开发环境:VS2012。
  • C# MDI窗体

    千次阅读 2019-06-12 16:55:34
    MDI (Multiple Document Interface) 窗体被称为多文档窗体,它是很多 Windows 应用程序中常用的界面设计。 在一个窗体中打开另一个窗体的方式可以通过设置 MDI 窗体的方式实现。 MDI 窗体的设置并不复杂,只需要...

             MDI (Multiple Document Interface) 窗体被称为多文档窗体,它是很多 Windows 应用程序中常用的界面设计。

    在一个窗体中打开另一个窗体的方式可以通过设置 MDI 窗体的方式实现。

            MDI 窗体的设置并不复杂,只需要将窗体的属性 IsMdiContainer 设置为 True 即可。

             在窗体加载事件 Load 中设置窗体为 MDI 窗体,代码如下。

    this.IsMdiContainer = True;

            在 MDI 窗体中,弹出窗体的代码与直接弹出窗体有些不同,

    在使用 Show 方法显示窗体前需要使用窗体的 MdiParent 设置显示当前窗体的父窗体,实现的代码如下:

    Test t = new Test();
    t.MdiParent = this;  //this:当前窗体
    t.Show();

                

    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 WindowsForm
    {
        public partial class MDI : Form
        {
            public MDI()
            {
                InitializeComponent();
                //MDI窗体的设置:将窗体的属性IsMdiContainer设置为True
                this.IsMdiContainer = true;
            }
    
            //打开文件菜单项的单击事件
            private void 打开文件ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //MDI弹出窗体:需要使用窗体的MdiParent设置当前窗体的父窗体
                OpenFile file = new OpenFile();
                file.MdiParent = this;
                file.Show();          
            }
    
            //保存文件菜单项单击事件
            private void 保存文件ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                SaveFile save = new SaveFile();
                save.MdiParent = this;
                save.Show();
            }
        }
    }
    

                                                  

    展开全文
  • vb 6.0制作的图片可以自适应的MDI窗体,最终完成的效果如截图所示,像不像一个比较专业的信息管理系统的界面效果?不过本实例主要是演示MDI窗体的制作方法,图片如何跟随窗口大小的变化而自动变化,打开窗口后,你...
  • C#开发时,在MDI窗体上直接放置控件后,默认情况下,其中的子窗体会在控件后方显示。这个源码本人多个程序中都有使用到,可以在MDI窗体上放置控件。 其他语言开发通过分析代码,亦有借鉴价值。
  • MDI 窗体

    2019-09-28 03:24:42
    //mdi 父集是form1 f2.Parent = panel1;// 父集是form1 里的 panel1 f2.Show(); } } private void 仓库模块ToolStripMenuItem_Click(object sender, EventArgs e) { bool has = false; Form f3 = new Form...

    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 _7._1练习
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
    {
    bool has = false;
    Form2 f2 = new Form2();

    foreach (Form f in panel1.Controls)
    {
    if (f.Name == f2.Name)//窗口只打开一次
    {
    has = true;
    f.Show();
    f2.Close();
    }
    }
    if (has)
    {
    foreach (Form f in panel1.Controls)
    {
    if (f.Name != f2.Name)
    {
    f.Hide();//相同命名自动隐藏
    }
    }
    }
    else
    {
    f2.WindowState = FormWindowState.Maximized;//窗口最大化
    f2.MdiParent = this;//mdi 父集是form1
    f2.Parent = panel1;// 父集是form1 里的 panel1
    f2.Show();
    }
    }

    private void 仓库模块ToolStripMenuItem_Click(object sender, EventArgs e)
    {
    bool has = false;
    Form f3 = new Form3();

    foreach (Form f in panel1.Controls)
    {
    if (f.Name == f3.Name)窗口只打开一次
    {
    has = true;
    f.Show();
    f3.Close();
    }
    }
    if (has)
    {
    foreach (Form f in panel1.Controls)
    {
    if (f.Name != f3.Name)
    {
    f.Hide();相同命名自动隐藏
    }
    }
    }
    else
    {
    f3.WindowState = FormWindowState.Maximized;窗口最大化
    f3.MdiParent = this;//mdi 父集是form1
    f3.Parent = panel1;// 父集是form1 里的 panel1
    f3.Show();
    }
    }

    private void panel1_Paint(object sender, PaintEventArgs e)
    {

    }
    }
    }

    转载于:https://www.cnblogs.com/suiyuejinghao123/p/5636324.html

    展开全文
  • Delphi给MDI窗体加背景..rar
  • MDI窗体

    千次阅读 2018-04-06 17:01:38
    MDI窗体,就是多文档界面,用于显示多个文档,每个文档显示在各自的窗口中,MDI窗体中通常会包含子菜单的窗口菜单,用于在窗口和文档中转换。设置MDI父窗体只需要将窗体的属性面板中的IsMdiContainer属性改成true...
    MDI窗体,就是多文档界面,用于显示多个文档,每个文档显示在各自的窗口中,MDI窗体中通常会包含子菜单的窗口菜单,用于在窗口和文档中转换。
    设置MDI父窗体
    只需要将窗体的属性面板中的IsMdiContainer属性改成true即可。
    设置MDI子窗体
    通过设置目标子窗体的MdiParent属性来确定子窗体。
    语法如下:
    public FormMdiParent{get:set:}

    属性值:MDI父窗体

    对MDI子窗体的排列
    可以使用带有MdiLayout枚举的LayoutMdi方法进行排列多文档界面父窗体中的子窗体。
    语法如下:
    public void LayoutMdi(MdiLayout value)
    value是MdiLayout枚举用于指定MDI父窗体的布局。
    语法如下:
    public enum MdiLayout
    MdiLayout的枚举成员及说明:
    枚举成员
    说明
    Cascade
    所有的MDI窗体均层叠在MDI父窗体的工作区内
    TileHorrizontal
    所有的MDI窗体均水平平铺在MDI父窗体的工作区内
    TileVertical
    所有的MDI窗体均垂直平铺在MDI父窗体的工作区内
    在父窗体中创建一个MenuStrip控件,用于设置子窗体的显示样式
    然后在MenuStrip控件中分别设置(加载子窗体,水平平铺,垂直平铺,层叠平铺)
    然后在方法中进行窗体的新建。代码如下。
    运行结果:
    窗体的继承:
    继承窗体的概念:就是根据现有窗体想要创建一个与其一样的窗体,或者根据现有窗体想在其基础上进行修改。通过继承的方式创建窗体,是创建新窗体很简便的方法。从一个窗体进行继承,包含该窗体的文件,或命名空间必须是已经编译好的可执行文件或者是DLL。
    创建继承窗体的方式:
    1.通过编程的方式进行继承。

    2.通过继承选择器进行窗体的继承。
    步骤:(1)在解决方案资源管理器中找到项目
    (2)项目添加,添加新项
    (3)选择windows Forms中的继承的窗体
    (4)在继承窗体选择器中选择想要选择的目标窗体。

    在继承窗体中修改继承的控件属性
    在向继承的窗体中添加控件的时候,控件的Modifiers属性都是private的,因此如果希望在继承窗体编辑各个窗体的属性,首先要将 基窗体(被继承的窗体)控件的Modifiers属性全部改为Public。



    展开全文
  • WinForm——MDI窗体

    千次阅读 2020-04-20 13:36:07
    MDI窗体由一个父窗体和若干个子窗体组成。MDI窗体允许同时显示多个窗体,他常包括含有子菜单的“窗口”菜单项,该菜单项用于在窗口之间进行切换。 MDI 窗体的设置并不复杂,只需要将窗体的属性 IsMdiContainer 设置...

    MDI窗体由一个父窗体和若干个子窗体组成。MDI窗体允许同时显示多个窗体,他常包括含有子菜单的“窗口”菜单项,该菜单项用于在窗口之间进行切换。

    MDI 窗体的设置并不复杂,只需要将窗体的属性 IsMdiContainer 设置为 True 即可。

    该属性既可以在 Windows 窗体的属性窗口中设置,也可以通过代码设置,这里在窗体加载事件 Load 中设置窗体为 MDI 窗体,代码如下。

    this.IsMdiContainer = True;

    此外,还可以在窗体类的构造方法中加入上面的代码。
    在设置 MDI 窗体以后,窗体的运行效果如下图所示。

      子窗体在父窗体中排列的方式可以使用带有Mdilayout枚举LayoutMdi枚举成员

    枚举

    说明

    ArrangeIcons

    所有 MDI 子图标均排列在 MDI 父窗体的工作区内。

    Cascade

    所有 MDI 子窗口均层叠在 MDI 父窗体的工作区内。

    TileHorizontal

    所有 MDI 子窗口均水平平铺在 MDI 父窗体的工作区内。

    TileVertical

    所有 MDI 子窗口均垂直平铺在 MDI 父窗体的工作区内。

     

    Cascade排列:

    TileHorizontal排列:

    TileVertical排列:

    代码:

      public partial class Form1 : Form

        {

            private static int FormCount = 1;

            //定义此常量是为了统计MDI窗体数目,

            MainMenu mnuMain = new MainMenu();

            MenuItem FileMenu;

            MenuItem NewMenu;

            MenuItem ExitMenu;

            MenuItem WindowMenu;

            public Form1()

            {

                InitializeComponent();

                this.IsMdiContainer = true;

                this.Text = "MDI演示程序";

                FileMenu = new MenuItem();

                FileMenu.Text = "文件";

                WindowMenu = new MenuItem();

                WindowMenu.Text = "窗口(&W)";

                WindowMenu.MenuItems.Add("窗体层叠(&C)", new EventHandler(Cascade_Click));

                WindowMenu.MenuItems.Add("水平平铺(&H)", new EventHandler(TileH_Click));

                WindowMenu.MenuItems.Add("垂直平铺(&V)", new EventHandler(TileV_Click));

                WindowMenu.MdiList = true;

                //这一句比较重要,有了这一句就可以实现在新建一个MDI窗体后会在此主菜单项下显示存在的MDI窗体菜单项

                NewMenu = new MenuItem();

                NewMenu.Text = "新建窗体(&N)";

                NewMenu.Click += new EventHandler(New_Click);

                ExitMenu = new MenuItem();

             

                FileMenu.MenuItems.Add(NewMenu);

                FileMenu.MenuItems.Add(new MenuItem("-"));

                FileMenu.MenuItems.Add(ExitMenu);

                mnuMain.MenuItems.Add(FileMenu);

                mnuMain.MenuItems.Add(WindowMenu);

                this.Menu = mnuMain;

            }

            private void Cascade_Click(object sender, EventArgs e)

            //实现对主窗体中的MDI窗体的层叠操作

            {

                this.LayoutMdi(MdiLayout.Cascade);

            }

            private void TileH_Click(object sender, EventArgs e)

            //实现对主窗体中的MDI窗体的水平平铺操作

            {

                this.LayoutMdi(MdiLayout.TileHorizontal);

            }

            private void TileV_Click(object sender, EventArgs e)

            //实现对主窗体中的MDI窗体的垂直平铺操作

            {

                this.LayoutMdi(MdiLayout.TileVertical);

            }

            private void New_Click(object sender, EventArgs e)

            {

                Form frmTemp = new Form();

                //新建一个窗体

                frmTemp.MdiParent = this;

                //定义此窗体的父窗体,从而此窗体成为一个MDI窗体

                frmTemp.Text = "窗体0" + FormCount.ToString();

                //设定MDI窗体的标题

                FormCount++;

                frmTemp.Show();

                //把此MDI窗体显示出来

            }

            private void Form1_Load(object sender, EventArgs e)

            {

                int deskWidth = Screen.PrimaryScreen.WorkingArea.Width;

                int deskHeight = Screen.PrimaryScreen.WorkingArea.Height;

                this.Width = Convert.ToInt32(deskWidth * 0.8);

                this.Height = Convert.ToInt32(deskHeight * 0.8);

            }  

            private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)

            {

                Form frmTemp = new Form();

                //新建一个窗体

                frmTemp.MdiParent = this;

                //定义此窗体的父窗体,从而此窗体成为一个MDI窗体

                frmTemp.Text = "窗体0" + FormCount.ToString();

                //设定MDI窗体的标题

                FormCount++;

                frmTemp.Show();

                //把此MDI窗体显示出来

            }

        }

    展开全文
  • MDI窗体实现多窗口.zip

    2020-07-29 10:10:13
    该资源为C#源码实现在主窗体界面上新建多个子窗体同时显示(内嵌于主窗体),子窗体可以水平平铺、垂直平铺、层叠显示,方便开发一些多窗体显示的应用程序
  • 一个包含菜单、MDI窗体背景等8个子类控件演示,VB的演示代码,控件名称:Subclass.ocx。
  • 实现MDI窗体的的单个子窗体显示,单个子窗体的切换
  • MDI窗体可以避免打开窗体的时候被无数个子窗体困扰,我将为大家一一的介绍一下vb.net中MDI窗体的操作方法 一、如何vb.net教程 创建MDI窗体? 1、创建mdi主窗体 新建建立一个默认空白的Windows应用c#教程程序,在Form...
  • C# MDI窗体的设置

    2021-04-13 11:19:32
    在 Windows 窗体应用程序中,经常会在一个窗体中打开另一个窗体, 通过窗体上的不同菜单选择不同的操作,这种在一个窗体中打开另一个窗体的方式可以通过设置 MDI 窗体的... //MDI窗体指的是多文档窗体 private void
  • 使用MDI窗体实现多窗口效果

    千次阅读 2018-08-09 12:02:52
    C#MDI窗体实现多窗口效果  Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程 序设计语言,正在受到越来越多的编程人员的喜欢。在Visual C#中,提供了为实现MDI程序设计的很多功能。...
  • vb如何设置父窗体与子窗体——MDI窗体

    千次阅读 热门讨论 2020-06-02 11:01:02
    想要达到这样的效果,首先要新建一个父窗体(MDI窗体)。 MDI窗体上又不允许放置PictureBox以外的控件,但是Picture上面就能放置控件,所有只要先在窗体上铺上一张图片,在把控件放置在图片上就可以。 运行时会发现...
  • VB 禁止调整MDI窗体大小,窗体文件一共是2个,一个是主窗口文件,一个是MDI窗口文件,实现禁止改变窗口大小的功能,我们可以在MDIForm中当窗体加载时,,执行以下代码:  Private Sub MDIForm_Load()  Style = ...
  • 在做winform程序的时候,需要用到MDI窗体,在网上看了一些避免子窗体重复打开的问题。 现在我有一个MDI窗体formfather以及两个子窗体form1和form2。 在父窗体上弄两个按钮,点击按钮1的时候显示form1,点击按钮2的...
  • 本文实例讲述了C#实现更改MDI窗体背景颜色的方法。分享给大家供大家参考。具体实现方法如下: /// /// 设置MDI背景 /// void RemoveMdiBackColor() { foreach (Control c in this.Controls) { if (c is ...
  • 去除MDI窗体的最大化 最小化按钮,如果你愿意的话“关闭”按钮也能去掉,很实用的
  • MDI窗体实例,演示了如何在MDI窗体执行子窗体的函数子程序!
  • 父容器下显示多个子窗体
  • 自己做项目需要的功能,实现了MDI窗体内部控件随MDI窗体大小的改变自动缩放,解决了最小化,最大化,控件不会丢失的问题!vs2008环境
  • vb禁用MDI窗体最大化按钮,该代码可以实现禁止使用多文档窗体的最大化按钮效果,以免窗体错位
  • MDI窗体设计 首先确定一个父窗体 把父窗体的 IsMdiContainer = true; 在父窗体内创建子窗体: 排列子窗体的方法 图示 创建子窗体: 横向排列: 纵向排列:
  • Winform中MDI窗体的使用

    2020-09-29 11:38:06
    //为子窗体指定父窗体 Form3 form3 = new Form3(); form3.MdiParent = this;//为子窗体指定父窗体 form2.Show(); form3.Show(); this.LayoutMdi(MdiLayout.TileVertical);//指定子窗体的排列样式,垂直排列 ...
  • C#-MDI窗体教学提纲.ppt

    2020-04-17 22:41:46
    李德奇 主编 第二十五讲 MDI窗体设计 大连理工大学出版社 教学目标 理解MDI窗体的...完成MDI窗体实例的程序编写 教学内容 一MDI窗体的特性 二MDI窗体的设计过程 三MDI窗体的菜单处理 四MDI窗体的显示控制 MDI窗体设计

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,308
精华内容 3,323
关键字:

mdi窗体