Windows 窗体概述

欢迎使用适用于 Windows 窗体的桌面指南,这是一个 UI 框架,用于创建适用于 Windows 的丰富桌面客户端应用。 Windows 窗体开发平台支持广泛的应用开发功能,包括控件、图形、数据绑定和用户输入。 Windows 窗体在 Visual Studio 中具有拖放视觉设计器,可轻松创建 Windows 窗体应用。

Windows Forms 有两个实现:

  1. GitHub 上托管的开源实现。

    此版本 在 .NET 上运行

    最新版本是适用于 .NET 9 的 Windows 窗体,使用 Visual Studio 2022 版本 17.12

  2. Visual Studio 2022、Visual Studio 2019 和 Visual Studio 2017 支持的 .NET Framework 4 实现。

    .NET Framework 4 是仅限 Windows 的 .NET 版本,被视为 Windows作系统组件。 此版本的 Windows 窗体与 .NET Framework 捆绑发行。

介绍

Windows 窗体是用于生成 Windows 桌面应用的 UI 框架。 它提供了基于 Visual Studio 中提供的视觉设计器创建桌面应用的最高效方法之一。 可视化控件的拖放放置等功能可以轻松构建桌面应用。

借助 Windows 窗体,可以开发图形丰富的应用,这些应用可在脱机或连接到 Internet 时轻松部署、更新和工作。 Windows 窗体应用可以访问运行应用的计算机的本地硬件和文件系统。

若要了解如何创建 Windows 窗体应用,请参阅 教程:创建新的 WinForms 应用

生成丰富的交互式用户界面

Windows 窗体是适用于 .NET 的 UI 技术,这是一组托管库,可简化常见应用任务,例如读取和写入文件系统。 使用 Visual Studio 等开发环境时,可以创建 Windows 窗体智能客户端应用,用于显示信息、请求用户输入并通过网络与远程计算机通信。

在 Windows 窗体中,窗体 是向用户显示信息的可视界面。 通常,通过将控件添加到窗体并开发对用户作(例如鼠标单击或按键)的响应来生成 Windows 窗体应用。 控件是一个离散的 UI 元素,用于显示数据或接受数据输入。

当用户对窗体或其控件之一执行某些操作时,该操作将生成事件。 应用使用代码对这些事件做出反应,并在事件发生时处理事件。 有关详细信息,请参阅 事件概述

Windows 窗体包含各种您可以添加到窗体的控件:这些控件可以显示文本框、按钮、下拉框、单选按钮,甚至网页。 有关可在窗体上使用的所有控件的列表,请参阅在 Windows 窗体上使用的控件。 如果现有控件不满足你的需求,Windows 窗体还支持使用 UserControl 类创建自己的自定义控件。 有关详细信息,请参阅 如何创建用户控件

Windows 窗体具有丰富的 UI 控件,可用于模拟高端应用中的特性,例如 Microsoft Office。 使用 ToolStripMenuStrip 控件时,可以创建包含文本和图像、显示子菜单以及托管其他控件(如文本框和组合框)的工具栏和菜单。

借助 Visual Studio 中的拖放 Windows 窗体设计器 ,可以轻松创建 Windows 窗体应用。 只需用光标选择控件,并将其放到窗体的任何位置。 设计器提供诸如网格线和对齐线的工具,以便简化对齐控件的操作。 你可以使用FlowLayoutPanelTableLayoutPanelSplitContainer控件在更少的时间内创建高级窗体布局。

最后,如果必须创建自己的自定义 UI 元素,则 System.Drawing 命名空间包含大量类,用于直接在窗体上呈现线条、圆圈和其他形状。

仅限 .NET Framework

Windows 窗体控件并未被设计用于跨应用程序域进行封送处理。 因此,Microsoft 不支持跨 AppDomain 边界传递 Windows 窗体控件,即使 ControlMarshalByRefObject 基类似乎指示这一操作可行。 只要没有 Windows 窗体控件跨应用程序域边界传递,就支持具有多个应用程序域的 Windows 窗体应用程序。

创建窗体和控件

有关如何使用这些功能的分步信息,请参阅以下帮助主题。

显示和操作数据

许多应用必须显示来自数据库、XML 或 JSON 文件、Web 服务或其他数据源的数据。 Windows 窗体提供了一个灵活的控件,该控件命名为 DataGridView 控件,用于以传统行和列格式显示此类表格数据,以便每个数据片段占用其自己的单元格。 使用 DataGridView时,可以自定义各个单元格的外观、锁定任意行和列,以及显示单元格内的复杂控件以及其他功能。

通过网络连接到数据源对于 Windows 表单来说是一件很简单的事情。 BindingSource 组件表示与数据源的连接,并公开用于将数据绑定到控件、导航到上一条和下一条记录、编辑记录以及将更改保存回原始源的方法。 BindingNavigator 控件通过 BindingSource 组件提供一个简单的界面,供用户在记录之间导航。

可以使用 Visual Studio 中的“数据源”窗口轻松创建数据绑定控件。 该窗口显示项目中的数据库、Web 服务和对象等数据源。 可以通过将此窗口中的项拖动到项目中的窗体上来创建数据绑定控件。 还可以通过将对象从“数据源”窗口拖动到现有控件上来将现有控件与数据进行数据绑定。

可在 Windows 窗体中管理的另一类数据绑定是“设置”。 大多数应用必须保留有关其运行时状态的一些信息,例如窗体的最后已知大小,并保留用户首选项数据,例如保存文件的默认位置。 应用程序设置功能通过提供在客户端计算机上存储这两种类型的设置的简单方法来解决这些要求。 使用 Visual Studio 或代码编辑器定义这些设置后,这些设置将保留为 XML,并在运行时自动读回内存。