C# Windows 表单应用教程及示例

⚡ 智能摘要

C# Windows Forms 应用程序教程介绍了如何使用 Visual Studio 和 .NET 框架构建桌面应用程序。 Less本教程涵盖 Hello World 表单、控件、事件处理以及 TreeView 和 Picture 等高级控件。Box以及提高 WinForms 开发效率的设计技巧。

  • 🖥️ 桌面用户界面 Foundation: Windows Forms 是 .NET 框架,用于在 Windows 上构建拖放式、事件驱动的桌面 GUI。 Windows.
  • 🧱 核心控制: 文本Box标签、按钮、列表Box组合Box单选按钮和复选框Box 构成每个 WinForms 屏幕的基本组成部分。
  • 事件驱动模型: 通过设计器或代码连接 Click、TextChanged 和 Load 事件,使控件能够响应用户操作。
  • 🌳 树状图和图片Box: TreeView 用于建模层级数据,而 Picture 用于建模层级数据。Box 显示图形并支持诸如 StretchImage 和 StretchImage 之类的模式 Zoom.
  • ???? 设计师效率: Visual Studio 的拖放式设计器、属性网格和事件选项卡无需手动进行坐标计算即可加快 UI 构建速度。
  • 🤖 人工智能协助: GitHub Copilot 和 Intelli 等 AI 编码工具Code 生成事件处理程序、建议控件布局并实现旧版 WinForms 代码现代化。

C# Windows 表格应用教程

到目前为止,我们已经了解了如何使用 C# 创建基于控制台的应用程序。但在实际场景中,团队通常使用 Visual Studio 和 C# 来创建 Windows 表单或基于 Web 的应用程序。

Windows 窗体应用程序是专为在计算机上运行而设计的应用程序。它不会在 Web 浏览器上运行,因为这样它就变成了 Web 应用程序。

本教程将重点介绍如何创建 Windows的应用程序。我们还将学习一些有关如何使用 C# 各种元素的基础知识 Windows 应用程序。

Windows 表单基础知识

A Windows 表单应用程序是在桌面计算机上运行的。 Windows 表单应用程序通常会有一个控件集合,如标签、文本框、列表框等。

下面是一个简单的例子 Windows 表单应用程序 C#。它显示一个简单的登录屏幕,用户可以访问。用户将输入所需的凭据,然后单击“登录”按钮继续。

Windows 表单基础知识

以下是上述应用程序中可用的控件的示例

  1. 这是标签控件的集合,通常用于描述相邻的控件。因此,在我们的例子中,我们有 2 个文本框,标签用于告诉用户一个文本框用于输入用户名,另一个用于输入密码。
  2. 这两个文本框用于保存用户输入的用户名和密码。
  3. 最后,我们有按钮控件。按钮控件通常会附加一些代码来执行一组特定的操作。例如,在上面的例子中,我们可以让按钮执行验证用户输入的用户名和密码的操作。

C# 你好,世界

现在让我们看一个例子,看看如何在 Visual Studio 中实现一个简单的“hello world”应用程序。为此,我们需要执行以下步骤

步骤1) 第一步是在 Visual Studio 中创建一个新项目。启动后 Visual Studio中,您需要选择菜单选项New->Project。

C# 你好,世界

步骤2) 下一步是选择项目类型 Windows 表格申请。这里我们还需要提及项目的名称和位置。

C# 你好,世界

  1. 在项目对话框中,我们可以看到在 Visual Studio 中创建不同类型项目的各种选项。单击 Windows 选项。
  2. 当我们点击 Windows 在上一步中的选项中,我们将能够看到一个选项 Windows 表单应用程序。单击此选项。
  3. 我们将为应用程序命名。在我们的例子中,它是 DemoApplication。我们还将提供一个位置来存储我们的应用程序。
  4. 最后,我们单击“确定”按钮让 Visual Studio 创建我们的项目。

如果遵循上述步骤,您将在 Visual Studio 中获得以下输出。

输出:-

C# 你好,世界

您将看到 Visual Studio 中显示一个表单设计器。您将在此表单设计器中开始构建 Windows 表格申请。

C# 你好,世界

在解决方案资源管理器中,您还将能够看到 DemoApplication 解决方案。此解决方案将包含以下 2 个项目文件

  1. 一个名为 Forms1.cs 的表单应用程序。此文件将包含 Windows 表格申请。
  2. 主程序名为 Program.cs,是 Visual Studio 中创建新应用程序时创建的默认代码文件。此代码将包含整个应用程序的启动代码。

在 Visual Studio 的左侧,您还将看到一个工具Box。工具箱包含所有可以添加到 Windows 表单。文本框或标签等控件只是可以添加到表单的一些控件。 Windows 形式。

下面是工具箱的屏幕截图。

C# 你好,世界

步骤3) 在此步骤中,我们现在将向表单添加一个标签,该标签将显示“Hello World”。从工具箱中,您需要选择标签控件并将其拖到表单上。

C# 你好,世界

将标签拖到表单上后,您可以看到嵌入在表单上的标签,如下所示。

C# 你好,世界

步骤4) 下一步是转到控件的属性并将文本更改为“Hello World”。

要转到控件的属性,您需要右键单击该控件并选择“属性”菜单选项

C# 你好,世界

  • 属性面板也会显示在 Visual Studio 中。因此,对于标签控件,在属性控件中,转到文本部分并输入“Hello World”。
  • 每个控件都有一组描述该控件的属性。

C# 你好,世界

如果你按照上述所有步骤并在 Visual Studio 中运行程序,你将获得以下输出

输出:-

C# 你好,世界

在输出中,你可以看到 Windows 表单显示出来。您还可以看到表单上显示了“Hello World”。

向表单添加控件

当我们在前面的部分中添加标签控件来显示“Hello World”时,我们已经看到了如何向表单添加控件。

让我们看看其他可用的控件 Windows 形式并了解它们的一些共同属性。

在我们之前关于 Windows C# 示例中的表单应用程序,我们将创建一个具有以下功能的表单。

  1. 用户可以输入姓名和地址。
  2. 选择用户居住城市的选项
  3. 用户可以输入性别选项。
  4. 选择用户想要学习的课程的选项。将为 C# 和 ASP.Net 做出选择

因此,让我们详细了解每个控件并添加它们以构建具有上述功能的表单。

团队 Box

分组框用于逻辑分组ping 将控件放入一个单独的部分中。举个例子,假设你有一组控件用于输入姓名、地址等个人信息。理想情况下,这些信息是关于某个人的具体信息,因此你希望将这些信息放在表单上的一个单独部分中。为此,你可以使用分组框。下面我们来看一个示例,了解如何实现这一点。

步骤1) 第一步是将 Groupbox 控件拖到 Windows 从工具箱中输入如下图所示的表格

向表单添加控件

步骤2) 添加完组框后,点击组框控件进入属性窗口。在属性窗口中,找到 Text 属性并将其更改为“用户详细信息”。

向表单添加控件

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

在输出中,您可以清楚地看到 Groupbox 已添加到表单中。您还可以看到 groupbox 的文本已更改为“用户详细信息”。

标签控制

接下来是标签控件。标签控件用于在表单上向用户显示文本或消息。标签控件通常与其他控件一起使用。常见示例是将标签与文本框控件一起添加。

标签向用户指示文本框中应填写的内容。让我们通过以下示例了解如何实现这一点。我们将添加 2 个标签,一个名为“姓名”,另一个名为“地址”。它们将与后面部分中添加的文本框控件一起使用。

步骤1) 第一步是将标签控件拖到 Windows 从工具箱中弹出如下图所示的表单。请确保将标签控件拖拽两次,以便一个用于“名称”,另一个用于“地址”。

向表单添加控件

步骤2) 添加标签后,单击标签控件进入属性窗口。在属性窗口中,转到每个标签控件的 Text 属性。

向表单添加控件

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

您可以看到添加到表单的标签控件。

文本框

文本框用于允许用户在 Windows 应用程序。让我们看看如何通过以下示例实现这一点。我们将向表单添加 2 个文本框,一个用于输入姓名,另一个用于输入用户地址

步骤1) 第一步是将文本框控件拖到 Windows 从工具箱中输入如下图所示的表格

向表单添加控件

步骤2) 添加文本框后,单击文本框控件转到属性窗口。在属性窗口中,转到“名称”属性并为每个文本框添加一个有意义的名称。例如,将用户的文本框命名为 txtName,将地址的文本框命名为 txtAddress。应该为控件制定命名约定和标准,因为这样可以更轻松地为这些控件添加额外的功能,我们稍后会看到。

向表单添加控件

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

在输出中,您可以清楚地看到文本框已添加到表单中。

列表框

列表框用于显示 Windows 表单。让我们通过下面的示例看看如何实现这一点。我们将向表单添加一个列表框来存储一些城市位置。

步骤1) 第一步是将列表框控件拖到 Windows 从工具箱中输入如下图所示的表格

向表单添加控件

步骤2) 添加列表框后,单击列表框控件转到属性窗口。

向表单添加控件

  1. 首先,更改 Listbox 框控件的属性,在我们的例子中,我们将其更改为 lstCity
  2. 单击 Items 属性。这将允许您添加可显示在列表框中的不同项目。在我们的示例中,我们选择了项目“collection”。
  3. 在弹出的字符串集合编辑器中,输入城市名称。在我们的例子中,我们输入了“孟买”、“班加罗尔”和“海得拉巴”。
  4. 最后,点击“确定”按钮。

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

在输出中,您可以看到列表框已添加到表单中。您还可以看到列表框已填充城市值。

单选按钮

单选按钮用于显示用户可以从中选择一个项目的列表。让我们通过下面的示例看看如何实现这一点。我们将添加一个单选按钮来选择男/女。

步骤1) 第一步是将“单选按钮”控件拖到 Windows 从工具箱中形成的如下图所示。

向表单添加控件

步骤2) 添加 Radiobutton 后,单击 Radiobutton 控件转到属性窗口。

向表单添加控件

  1. 首先,您需要更改两个 Radio 控件的文本属性。转到属性窗口,将其中一个单选按钮的文本更改为 male,将另一个单选按钮的文本更改为 female。
  2. 类似地,更改两个 Radio 控件的 name 属性。转到属性窗口,将一个单选按钮的名称更改为 'rdMale',将另一个单选按钮的名称更改为 'rdfemale'。

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

您将看到单选按钮添加到 Windows 形式。

复选框

复选框用于提供选项列表,用户可以在其中选择多个选项。让我们通过以下示例了解如何实现这一点。我们将在我们的 Windows 表单。这些复选框将为用户提供一个选项,让他们选择是否要学习 C# 或 ASP.Net。

步骤1) 第一步是将复选框控件拖到 Windows 从工具箱中输入如下图所示的表格

向表单添加控件

步骤2) 添加复选框后,单击复选框控件转到属性窗口。

向表单添加控件

在属性窗口中,

  1. 首先,您需要更改两个复选框控件的文本属性。转到属性窗口并将文本更改为 C#,然后 网络.
  2. 同样,更改两个 Radio 控件的 name 属性。转到属性窗口,将一个复选框的名称更改为 chkC,将另一个复选框的名称更改为 chkASP。

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

按键

按钮用于允许用户单击按钮,然后开始处理表单。让我们通过以下示例了解如何实现这一点。我们将添加一个名为“提交”的简单按钮,用于提交表单上的所有信息。

步骤1) 第一步是将按钮控件拖到 Windows 从工具箱中输入如下图所示的表格

向表单添加控件

步骤2) 添加按钮后,单击按钮控件转到属性窗口。

向表单添加控件

  1. 首先,您需要更改按钮控件的文本属性。转到属性窗口并将文本更改为“提交”。
  2. 同样,更改控件的名称属性。转到属性窗口并将名称更改为“btnSubmit”。

完成上述更改后,您将看到以下输出

输出:-

向表单添加控件

恭喜,你现在有了第一个基本 Windows 表单已就位。现在让我们进入下一个主题,了解如何对控件进行事件处理。

控件的 C# 事件处理

使用 Windows 窗体时,您可以向控件添加事件。事件是执行操作时发生的事情。最常见的操作可能是单击窗体上的按钮。在 C# 中 Windows 表单,您可以添加代码,该代码可用于在表单上按下按钮时执行某些操作。

通常,当按下表单上的按钮时,这意味着应该进行某些处理。

在我们进入按钮事件场景之前,让我们先看一下其中一个事件以及如何处理它。

以下示例将展示 Listbox 控件的事件。因此,每当在 Listbox 控件中选择一项时,都会弹出一个消息框,显示所选的项。让我们执行以下步骤来实现这一点。

步骤1) Double 单击表单设计器中的列表框. 通过执行此操作,Visual Studio 将自动打开表单的代码文件。并且它会自动将事件方法添加到代码中。每当选择列表框中的任何项目时,都会触发此事件方法。

控件的 C# 事件处理

以上是当您双击窗体上的列表框控件时,Visual Studio 自动添加的代码片段。现在让我们将下面的代码部分添加到此代码片段中,以将所需的功能添加到列表框事件中。

控件的 C# 事件处理

  1. 这是双击列表框控件时 Visual Studio 自动创建的事件处理程序方法。您无需担心方法名称或传递给该方法的参数的复杂性。
  2. 这里我们通过 lstCity.SelectedItem 属性获取 SelectedItem。请记住,lstCity 是我们的 Listbox 控件的名称。然后我们使用 GetItemText 方法获取所选项目的实际值。然后我们将此值分配给文本变量。
  3. 最后,我们使用消息Box 方法向用户显示文本变量值。

完成上述更改后,在 Visual Studio 中运行程序,您将看到以下输出

输出:-

控件的 C# 事件处理

从输出中,您可以看到,当选择列表框中的任何项目时,将弹出一个消息框。这将显示列表框中选定的项目。

现在让我们看看最后一个控件,即按钮单击方法。这同样遵循相同的理念。只需双击窗体设计器中的按钮,它就会自动添加按钮事件处理程序的方法。然后您只需添加以下代码即可。

控件的 C# 事件处理

  1. 这是双击按钮控件时 Visual Studio 自动创建的事件处理程序方法。您无需担心方法名称或传递给该方法的参数的复杂性。
  2. 这里我们获取在姓名和地址文本框中输入的值。这些值可以从文本框的文本属性中获取。然后我们将这些值相应地分配给 2 个变量,姓名和地址。
  3. 最后,我们使用消息Box 方法向用户显示姓名和地址值。

完成上述更改后,在 Visual Studio 中运行程序,您将看到以下输出

输出:-

控件的 C# 事件处理

  1. 首先,在姓名和地址字段中输入一个值。
  2. 然后点击提交按钮

一旦您单击“提交”按钮,就会弹出一个消息框,它会正确显示您在用户详细信息部分输入的内容。

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

我们还可以查看另外两个控件,一个是“树控件”,另一个是“图像控件”。让我们看一下如何实现这些控件的示例

树控件

– 树形控件用于以树状方式列出项目。最好的例子可能是当我们看到 Windows Explorer 本身。 Windows 资源管理器就像一个树状结构。

让我们通过下面的示例看看如何实现这一点。

步骤1) 第一步是将 Tree 控件拖到 Windows 从工具箱中输入如下图所示的表格

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

步骤2) 下一步是开始向树集合添加节点,以便它能够相应地出现在树中。首先,让我们按照以下子步骤向树集合添加根节点。

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

  1. 转到树视图控件的属性工具箱。单击节点的属性。这将打开 TreeNode 编辑器
  2. 在 TreeNode 编辑器中单击“添加根”按钮,将根节点添加到树集合中。
  3. 接下来,更改 Root 节点的文本,并将文本提供为 Root,然后单击“确定”按钮。这将添加 Root 节点。

步骤3) 下一步是开始将子节点添加到树集合中。让我们按照以下子步骤将子根节点添加到树集合中。

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

  1. 首先,单击“添加子节点”按钮。这将允许您将子节点添加到树集合中。
  2. 对于每个子节点,更改文本属性。继续重复上一步和此步骤,并添加 2 个额外节点。最后,您将拥有如上所示的 3 个节点,文本分别为标签、按钮和复选框。
  3. 点击确定按钮

一旦完成上述更改,您将看到以下输出。

输出:-

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

您将能够看到添加到表单的树视图。当您运行 Windows 表单应用程序,您可以展开根节点并在列表中查看子节点。

图片Box 通过积极争取让商标与其相匹配的域名优先注册来维护

此控件用于将图像添加到 Winforms C#。让我们通过下面的示例看看如何实现这一点。

步骤1) 第一步是将图片Box 控制权转移到 C# Windows 从工具箱中输入如下图所示的表格

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

步骤2) 下一步是实际将图像附加到图片框控件。这可以按照以下步骤完成。

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

  1. 首先,单击图片的图像属性Box 控制。将弹出一个新窗口。
  2. 在此窗口中,单击导入按钮。这将用于将图像附加到图片框控件。
  3. 将弹出一个对话框,您可以在其中选择要附加到图片框的图像
  4. 点击确定按钮

完成上述更改后,您将看到以下输出

输出:-

树和画Box 通过积极争取让商标与其相匹配的域名优先注册来维护

从输出中,您可以看到表单上显示了一张图片。

常见问题

是的。 Microsoft 继续支持 .NET 8 及更高版本中的 WinForms,并改进了高 DPI 显示效果。它仍然广泛应用于业务线应用程序,这些应用程序需要快速开发和 Windows仅接受部署。

GitHub Copilot、Cursor 等人工智能助手, JetBrains AI 可以生成事件处理程序、布局代码和数据绑定样板代码。它们可以加快控件连接速度,并帮助 WinForms 应用程序向 .NET 8 现代化升级。

是的。专业的迁移助手和人工智能代理可以帮助将 WinForms 转换为 WPF、WinUI 3 或 .NET MAUI。虽然仍然需要人工审核,但人工智能可以显著减少重复的人工重构工作。

WinForms 使用基于 GDI 的控件,其设计器专注于数据输入应用程序。WPF 使用 XAML、硬件加速渲染、MVVM 模式和现代样式,以实现更丰富、可扩展的用户界面。

在代码中创建控件实例,设置其属性(例如位置和文本),然后调用 this.Controls.Add(control)。之后挂钩事件处理程序,使控件响应用户操作。

是的。在应用程序清单或 Program.cs 文件中,将应用程序的高 DPI 模式设置为 PerMonitorV2。在窗体上使用 AutoScaleMode.Dpi,以便控件和字体在现代显示器上正确缩放。

使用 Visual Studio 发布配置文件创建独立的 .NET 部署、MSIX 安装程序或 ClickOnce 包。这些方法将运行时打包在一起,简化了跨平台安装。 Windows 机器。

Visual Studio 2022 及更高版本提供最完整的 WinForms 设计器体验。 JetBrains Rider 它还支持 WinForms,并提供强大的重构工具,但其设计器的功能不如 Visual Studio 完善。

总结一下这篇文章: