首页 > 编程语言 >【C#】【WinForm】MDI窗体

【C#】【WinForm】MDI窗体

时间:2023-10-24 21:33:29浏览次数:30  
标签:MDI C# void System EventArgs Form1 窗体 cs using

MDI窗体的相关学习使用

1、设置MDI父窗体

 在属性中找到IsMdiContainer选项,设置为True

2、添加MDI子窗体,在项目中依次选择添加->窗体,然后一直默认即可

 添加后的项目目录(Form1为父窗口,Form2、Form3为子窗口)

 3、在Form1.cs中,创建对应MDI子窗口的对象并调用显示出来

 1 namespace WindowsFormsApp1
 2 {
 3     public partial class Form1 : Form
 4     {
 5         public Form1()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private void Form1_Load(object sender, EventArgs e)
11         {
12             Form form2 = new Form2();
13             form2.Show();
14             form2.MdiParent = this;
15             Form form3 = new Form3();
16             form3.Show();
17             form3.MdiParent = this;
18         }
19     }
20 }

保存运行后即可显示出所有子窗口。

 

4、将子窗口按照特定方式排列显示

所需控件(菜单和工具栏 -> Menu Strip)

在设计界面依次添加Items

 将每个Items都双击依次,然后在Form1.cs文件中添加如下代码:

        private void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileHorizontal);
        }

        private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileVertical);
        }

        private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.Cascade);
        }

完整Form1.cs代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace WindowsFormsApp1
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20         private void Form1_Load(object sender, EventArgs e)
21         {
22             Form form2 = new Form2();
23             form2.Show();
24             form2.MdiParent = this;
25             Form form3 = new Form3();
26             form3.Show();
27             form3.MdiParent = this;
28         }
29 
30         private void 水平排列ToolStripMenuItem_Click(object sender, EventArgs e)
31         {
32             LayoutMdi(MdiLayout.TileHorizontal);
33         }
34 
35         private void 垂直排列ToolStripMenuItem_Click(object sender, EventArgs e)
36         {
37             LayoutMdi(MdiLayout.TileVertical);
38         }
39 
40         private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
41         {
42             LayoutMdi(MdiLayout.Cascade);
43         }
44     }
45 }

 

 

关于  Form.cs  Form1.Designer.cs  Form1.cs[设计]  这三个文件的作用:

Form1.cs[设计]为前端界面设计器,和QT中的Designer相同,通过图形化界面设计应用的展示效果,简化前端的工作量。

Form1.Designer.cs则是通过设计器设置后的界面后,同步生成对应的前端代码存放文件,主要用于定义窗体的布局、控件的位置和属性等

Form.cs则是用于后端业务处理,实现复杂的逻辑和功能,包含了窗体类的代码逻辑,例如控件的初始化、事件处理等。

标签:MDI,C#,void,System,EventArgs,Form1,窗体,cs,using
From: https://www.cnblogs.com/vangoghpeng/p/17785763.html

相关文章

  • LeetCode 1089. 复写零
    复写零题目链接1089.复写零给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。请对输入的数组就地进行上述修改,不要从函数返回任何东西。示例1:输入:arr=[1,0,2,3,0,4,5,0]输......
  • LeetCode 202. 快乐数
    快乐数题目链接202.快乐数编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐......
  • LeetCode 11. 盛最多水的容器
    盛水最多的容器题目链接11.盛最多水的容器给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。**说明:**你不能倾斜容器......
  • LeetCode 611. 有效三角形的个数
    有效三角形的个数题目链接611.有效三角形的个数给定一个包含非负整数的数组nums,返回其中可以组成三角形三条边的三元组个数。示例1:输入:nums=[2,2,3,4]输出:3解释:有效的组合是:2,3,4(使用第一个2)2,3,4(使用第二个2)2,2,3示例2:输入:nums=[4,2,......
  • opencv的理解与作用
    一、标准定义:   OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库【说白了就是有相应的视觉算法和视觉函数方便我们开发】。既然跨平台,那必须支持很多常见的系统,linux必然是其中一个!主要接口是C++哦!发起公司英特尔公司。二、出现的意义:   ①高......
  • C#网络下载器
    之前学习了一部分的C#基础,但是感觉会的不多,很多地方依然需要通过做一点小Demo来进行巩固,那么这个C#的网络下载器,就来了原理讲解首先我们编写代码之前,我们需要了解下网络下载的原理到底是什么?学习过C#中IO流部分的知识,或者你有其它的语言的基础,学习过其它语言的文件IO的基础,肯定......
  • VK Cup 2016 - Round 1 (CF639)
    A.BearandDisplayedFriends这是Div2的题,不写。B.BearandForgottenTree3这种东西怎么评蓝的?Description给定\(n,d,h\),构造一棵有\(n\)个点,直径为\(d\),高度为\(h\)的树。\(n\le10^5\)。Solution首先\(d>2h\)是无解的,\(d=h=1\)且\(n>2\)的时候也无解......
  • Codeforces Round 905 div2 F题
    记答案为\(ans_i\),表示从1到i次修改出现的字典序最小的数组a,\(c\)数组表示\(ans_i\)出现之后,所有修改的累加和。用一个vector存一下\(ans_i\)之后的所有修改。从1到q遍历每一次修改时,对\(c\)数组进行区间赋值操作,如果\(c\)数组中第一个不为0的数<0,那么\(ans_i\)加上\(c\)中的......
  • vulnstack2靶场记录
    内网渗透:Vulnstack2靶场记录环境配置web机恢复快照至v1.3在VMWare上开一张新的虚拟网卡,网段为10.10.10.0/24检测连通性:在192.168.208.0/24网段下,Kali一开始死活ping不通web和PC,解决方案:允许防火墙进行ICMP回显netshfirewallseticmpsetting8:允许被ping关闭手......
  • Linux下gcc编译,动态库和静态库,makefile,gdb调试
    1.编译过程1.1预处理(Pre-Processing)展开头文件,宏替换(变量宏、函数宏)、替换空格等gcc-Ehello.c-ohello.i//-E预处理选项,-o重命名1.2编译(Compilation)逐行检查程序中出现的语法错误,简单的逻辑错误gcc-Shello.i-ohello.s1.3汇编(Asse......