C#写的几段WinForm MDI窗体控制的代码分享

  

        /// <summary>
        /// 功能:MDI程序中设置主窗体大小为显示器工作区大小
        /// </summary>
        /// <param name="MainForm">主窗体实例</param>
        public static void SetMainFormSize(Form MainForm)
        {
            MainForm.Location = new Point(0, 0);
            MainForm.Width = Screen.PrimaryScreen.WorkingArea.Width;
            MainForm.Height = Screen.PrimaryScreen.WorkingArea.Height;
        }

   *****************************************************

        /// <summary>
        /// 功能:MDI程序中设置子窗体大小为父窗体工作区大小
        /// </summary>
        /// <param name="MdiForm">子窗体实例</param>
        public static void SetMdiChildSize(Form MdiForm)
        {
            MdiForm.Location = new Point(0, 0);
            MdiForm.Width = MdiForm.Parent.ClientSize.Width;
            MdiForm.Height = MdiForm.Parent.ClientSize.Height;
        }

   *****************************************************   

        /// <summary>
        /// 功能:关闭所有打开的MDI子窗体
        /// </summary>
        /// <param name="MainForm">参数:父窗体</param>
        public static void CloseAllMdiForms(Form MainForm)
        {
            if (MainForm.MdiChildren.Length <= 0)
            {
                return;
            }
            else
            {
                foreach (Form SubForm in MainForm.MdiChildren)
                {
                    SubForm.Close();
                }
            }
        }

   *****************************************************   

        /// <summary>
        /// 功能:检测Mdi子窗体状态变化,当子窗体最小化或最大化时恢复默认状态
        /// </summary>
        /// <param name="MdiForm">子窗体实例</param>
        public static void SetMdiFormState(Form MdiForm)
        {
            if (MdiForm == null)
            {
                return;
            }
            else if ((MdiForm.WindowState == FormWindowState.Minimized) || (MdiForm.WindowState==FormWindowState.Maximized))
            {
                MdiForm.WindowState = FormWindowState.Normal;
            }
        }
时间: 2024-10-14 07:08:55

C#写的几段WinForm MDI窗体控制的代码分享的相关文章

Winform MDI窗体容器、权限、简单通讯

MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体不管怎么调整,是无法跳出其父级窗体容器的 注:如果想让内部窗体一直最大化并且不要其显示最大化最小化按钮,可将其FormBorderStyle设置为None,Win7系统另外需要将此窗体放入一个Panel容器中 private void 销售ToolStripMenuItem_Click(object

Winform MDI窗体容器 权限 简单通讯

MDI窗体容器 权限  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; using WindowsFormsApplication1.App_Code; namespace Win

C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件

一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序 2.效果图: 如下图所示,多窗体嵌套,其中一个是父窗体,其条是子窗体. 横向排列下面的窗体: 纵向排列下面的窗体: 关闭全部子窗

C# winform MDI父窗体背景图问题

本人才学C#   才疏学浅,大部分时间不懂只能靠百度或CSDN. (一些小问题又不好意思在CSDN上发帖来找大神们帮忙,度娘不行就只能自己去摸索了) 好了,正题. 最近在做winform MDI时遇见个问题,给父窗体设置背景图这谁都会,设置窗体的BackgroundImage就行了. 每当运行程序时,有背景就是比以前好看多了.(效果如下) 可是自己开心没过一秒钟,习惯性的去拖动窗口,结果,尼玛(成了这样······) 再去点了个最大化,我哭啊(说好的不做死呢······) 没办法,只能去网上找办

winform(MDI窗体容器、权限设置)

一.MDI窗体容器: 1.功能: 它可以让其它窗体在它的内部打开,无法超出它的范围 将某个窗体的属性:IsMdiContainer设置为true - 窗口样式 2.问题: (1)如何将其它窗体在它的内部打开? 窗体对象名.MdiParent = this; (2)窗体打开时最大化属性不好用,怎么办? 在实例化窗体对象,show之前,用代码设置最大化属性 注意:窗体的WindowState属性必须为默认值Normal (3)内部窗体最大时右上角总是显示最大最小关闭按钮,如何去掉? 在MDI窗体里放

【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

一.打印控件 第一步先把打印对象搞出来. - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印) 设置他的PrintPage事件(对于要打印的每一页触发一次) - pageSetupDialog 打印设置对话框 - printPreviewDialog 打印预览对话框 - printPreviewControl  打印预览控件. 只需要把预览对象给他设置上就好 - printDialog  打印对话框 打印界面里面是否禁用页面范围.打印到文件等从Pri

.Net学习 第3季02 winform应用程序 MDI窗体设计 menuStrip

窗体2.3.4...只落在窗体1(父窗体)的范围内并且可以全部显示的设计---MDI窗体设计 在窗体1中创建menuStrip类的对象(菜单栏),设置其中一个的点击事件为显示窗体2.3.4 private void 显示子窗体ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); Form3 f3 = new Form3(); f3.Show(); Form4 f4 = ne

Winform实现窗体镂空效果

今天找到一个名叫LICEcap的录屏软件,录制界面是这样的:     这个炫酷的空心窗口就是镜头,调整好大小,然后对准需要录制的地方按下Record就可以生成gif了. 卧槽太NB了我也要做一个! 根据StackOverflow站的提示(在这里),我们需要使用一个在Windows2000及之后平台可用的,用以实现不规则窗体的分层窗口API (SetLayerWindowAttributes).根据百度我们先需要使用一个名为SetWindowLong的Win32 API来把窗体设定为分层窗体. 为

Winform跨窗体操作控件(使用委托)

Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,Form1按钮打开Form2,然后在Form2的TextBox输入值在Form1的TextBox中显示出来. 一.项目结构 Form1窗体设计: Form2窗体设计: 二.代码实现 在Form2的代码中声明一个委托(写在Form2类外)-> public delegate void ChangeFor