【C#】【WinForm】MDI窗体

这篇具有很好参考价值的文章主要介绍了【C#】【WinForm】MDI窗体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MDI窗体的相关学习使用

1、设置MDI父窗体

【C#】【WinForm】MDI窗体

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

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

【C#】【WinForm】MDI窗体

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

【C#】【WinForm】MDI窗体

 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

【C#】【WinForm】MDI窗体

 将每个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则是用于后端业务处理,实现复杂的逻辑和功能,包含了窗体类的代码逻辑,例如控件的初始化、事件处理等。文章来源地址https://www.toymoban.com/news/detail-711337.html

到了这里,关于【C#】【WinForm】MDI窗体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C# Winform 多进程窗体间传值->SendMessage()

    在 C# 的 Windows Forms 中,使用 Windows API 的 SendMessage 方法可以实现窗口间的消息通传递,当然也可以在不同的进程之间发送消息。接下来,我将为您提供一个基本的示例,演示如何使用 SendMessage 以及如何重写 WndProc 方法来接收并处理消息。 首先,你需要添加对Windows API的引用:

    2024年02月14日
    浏览(43)
  • C# winform usercontrol控件跟随主窗体实现自动大小

    usercontrol控件跟随主窗体实现自动大小 今天是跟着哗哩哗哩大学学习C的第N天,但是是学习usercontrol的第一天。 第一天遇到的问题就是如何将usercontrol的大小跟随主窗体的一起变大变小。视频中教得很详细,首先是将usercontrol控件实例化,接着就是设置usercontrol的dock属性为fil

    2024年02月12日
    浏览(48)
  • C#在winForm窗体中添加一个可以自由拖动的控件

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 一、实现步骤 1.创建一个新的Windows窗体项目 2.添加控件如图 3.代码部分 总结 textBox1=鼠标在需要拖动的控件中的坐标 X 值 textBox2=鼠标在需要拖动的控件中的坐标 Y 值 textBox3=需要

    2024年01月19日
    浏览(44)
  • MDI窗体不重复打开同一个子窗体

    内容来自于零基础学习c#,很不错的一本书。推荐购买。  特此记录 anlog 2023年4月6日

    2023年04月09日
    浏览(27)
  • C# winform窗体UI美化后实现最大化、最小化、还原、关闭、窗体移动等等-2023/1/11

    在做winform窗体UI美化时,一般都需要将窗体的FormBorderStyle属性设为None,之后窗体就会没有最上面的标题栏,然后按照UI进行界面的设计。美化的代价就是窗体本来标题栏的相关操作,例如双击自动最大化,再次双击又恢复正常大小,以及上窗体关闭、最小化等功能就都需要自

    2024年02月08日
    浏览(55)
  • C#实例:多功能Windows窗体应用程序Helloworld_WinForm

    有了创建一个Windows窗体应用程序的经验,就可以开始尝试运用更多的控件实现更多丰富的功能界面。以下分享我基于项目Helloworld_WinForm 使用常用C#Windows窗体控件 实现一些小功能。 每一节标题为所用到的控件,全文以实际制作过程为序编制。 1、创建窗体Form 项目创建时会默

    2024年02月04日
    浏览(59)
  • C#:如何用VS开启人生中第一个Windows窗体应用程序(Winform)?

    摘要:Windows窗体应用程序(Winform,下文以此指代)既能有效、直观地设计Windows窗体界面,又支持内部逻辑的编写。那么,对于C#初学者来说,如何开启第一个Winform程序呢?    编程语言:C# 编程环境:Visual Studio 2019 目录 步骤 每篇寄语         1、点击桌面Visual Studio 2019图

    2024年02月09日
    浏览(58)
  • C#学习相关系列之多线程(七)---Task的相关属性用法

    任务是 架构在线程之上 的,任务最终的执行还是要给到线程去执行的。 任务和线程之间不是一对一的关系,任务更像线程池,任务相比线程池有很小的开销和精确的控制。 (总的来说Task的用法更为先进,在多线程的时候应该优先考虑Task) 1. status 当前状态类属性(较多)  C

    2024年02月06日
    浏览(33)
  • C# winform使用scottplot图表控件快速入门设置XY轴缩放

    Hello大家好我是开箱测评小汪,在C#项目开发中使用图表控件,有时候我们希望放大或缩小图表控件来看数据细节和整体数据情况。所有本期课程将带介绍Scottplot图表控件如何来实现这个功能。   本期课程的要达到的目的: 设置鼠标管轮缩放进行缩放 设置鼠标右键长按进行拖

    2024年02月15日
    浏览(57)
  • 【Winform学习笔记(八)】通过委托实现跨窗体传值

    在本文中主要介绍 如何通过委托实现跨窗体传值,并以简单的示例进行展示。 委托 :委托是方法的抽象,与类一样是一种用户自定义类型,存储的是一系列具有相同签名和返回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行; 委托类型声明 :委托是类

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包