C#设计简单的WinForms多窗口应用程序[示例]

2024-04-09 14:52

本文主要是介绍C#设计简单的WinForms多窗口应用程序[示例],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个程序是一个简单的多窗口应用程序,使用了 Windows 窗体(WinForms)来创建用户界面。让我们逐步分析它的结构:

1. **命名空间(Namespace):**
   整个程序位于名为 `MultiWindowApp` 的命名空间中。命名空间是用于组织代码的一种方式,可以避免名称冲突并使代码更易于维护。

2. **程序入口(Main):**
   `Program` 类包含一个静态的 `Main` 方法,这是程序的入口点。在 `Main` 方法中,首先启用了视觉样式,然后设置了兼容的文本呈现方式,并通过创建并运行一个 `MainForm` 的实例来启动应用程序。

3. **主窗体(MainForm):**
   `MainForm` 类继承自 `Form` 类,表示应用程序的主窗体。在 `MainForm` 的构造函数中,调用了 `InitializeComponent()` 方法,这个方法初始化了主窗体中的控件和布局,并订阅了窗体加载事件。窗体加载时,会显示一个消息框,提示 "MainForm loaded successfully!"。主窗体还包含一个名为 `openNewWindowButton` 的按钮,当用户单击该按钮时,会打开一个新的 `ChildForm` 窗体。

4. **主窗体初始化方法(InitializeComponent):**
   `InitializeComponent()` 方法用于初始化主窗体中的控件和布局。在该方法中,创建了 `openNewWindowButton` 按钮,并设置了它的位置、大小和文本,并添加了一个事件处理程序 `openNewWindowButton_Click`。

5. **主窗体加载事件处理程序(MainForm_Load):**
   在窗体加载时调用的事件处理程序。在这个方法中,显示一个包含消息 "MainForm loaded successfully!" 的消息框。

6. **打开新窗口按钮点击事件处理程序(openNewWindowButton_Click):**
   当用户单击 `openNewWindowButton` 按钮时,会触发 `openNewWindowButton_Click` 方法。在这个方法中,创建了一个 `ChildForm` 的实例,并调用 `Show()` 方法显示新的子窗体。

7. **子窗体(ChildForm):**
   `ChildForm` 类继承自 `Form` 类,表示应用程序中的子窗体。在 `ChildForm` 的构造函数中,同样调用了 `InitializeComponent()` 方法进行初始化,并订阅了窗体加载事件。在窗体加载时,会创建一个名为 `closeButton` 的按钮,用于关闭子窗体。

8. **子窗体初始化方法(InitializeComponent):**
   `InitializeComponent()` 方法用于初始化子窗体中的控件和布局。在该方法中,创建了 `closeButton` 按钮,并设置了它的位置、大小和文本,并添加了一个事件处理程序 `closeButton_Click`。

9. **关闭按钮点击事件处理程序(closeButton_Click):**
   当用户单击 `closeButton` 按钮时,会触发 `closeButton_Click` 方法。在这个方法中,调用了 `Close()` 方法来关闭子窗体。

总体来说,这个程序展示了一个简单的多窗口应用程序的结构,主窗体可以打开子窗体,并且子窗体有一个按钮用于关闭自己。

using System;
using System.Drawing;
using System.Windows.Forms;namespace MultiWindowApp
{static class Program{[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MainForm());}}public partial class MainForm : Form{private Button openNewWindowButton;public MainForm(){InitializeComponent();this.Load += MainForm_Load; // 订阅窗体加载事件}private void InitializeComponent(){this.openNewWindowButton = new Button();this.SuspendLayout();// // openNewWindowButton// this.openNewWindowButton.Location = new Point(12, 12);this.openNewWindowButton.Name = "openNewWindowButton";this.openNewWindowButton.Size = new Size(150, 30);this.openNewWindowButton.Text = "Open New Window";this.openNewWindowButton.Click += new EventHandler(openNewWindowButton_Click);// // MainForm// this.ClientSize = new Size(300, 200);this.Controls.Add(this.openNewWindowButton);this.Name = "MainForm";this.ResumeLayout(false);}private void MainForm_Load(object sender, EventArgs e){MessageBox.Show("MainForm loaded successfully!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);}private void openNewWindowButton_Click(object sender, EventArgs e){ChildForm childForm = new ChildForm();childForm.Show();}}public partial class ChildForm : Form{private Button closeButton;public ChildForm(){InitializeComponent();}private void InitializeComponent(){this.closeButton = new Button();this.SuspendLayout();// // closeButton// this.closeButton.Location = new Point(12, 12);this.closeButton.Name = "closeButton";this.closeButton.Size = new Size(150, 30);this.closeButton.Text = "Close";this.closeButton.Click += new EventHandler(closeButton_Click);// // ChildForm// this.ClientSize = new Size(300, 200);this.Controls.Add(this.closeButton);this.Name = "ChildForm";this.ResumeLayout(false);}private void closeButton_Click(object sender, EventArgs e){this.Close();}}
}

在C#中,Load() 方法通常用于窗体或控件加载时执行的初始化操作。当窗体或控件首次加载时,Load() 方法会在窗体或控件的生命周期中调用一次。

主要用途包括:

  1. 初始化界面: 在窗体或控件加载时,可以执行一些初始化操作,例如设置控件的属性、绑定数据、加载配置等。

  2. 准备数据: 可以在窗体或控件加载时加载所需的数据,例如从数据库、文件或网络中获取数据,并在加载完成后更新界面。

  3. 注册事件处理程序: 可以在加载时注册事件处理程序,以响应用户的交互操作,例如按钮点击、菜单选择等。

  4. 执行其他初始化任务: 除了上述任务之外,还可以执行其他与窗体或控件相关的初始化任务,以确保窗体或控件在加载完成后处于正确的状态。

总的来说,Load() 方法是在窗体或控件加载时执行的初始化操作的理想地点,可以用于确保窗体或控件的正确初始化和准备。

这篇关于C#设计简单的WinForms多窗口应用程序[示例]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888451

相关文章

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.