更新:2007 年 11 月
此页面链接到有关广泛使用的 Windows 应用程序任务的帮助。有关帮助中涵盖的其他类别的常见任务的更多信息,请参见如何实现 - C#。
一般信息
- 基于 Windows 的应用程序概述 
 提供可使用 Visual Studio 创建的 Windows 应用程序的概述。
- 在 Windows 窗体和 Web 窗体之间作出抉择 
 讨论每种技术的功能和特性,帮助您确定最适合您的应用程序的技术。
使用窗体
Windows 窗体设计器
- 如何:在 Windows 应用程序中选择启动窗体 
 提供有关如何在 Windows 应用程序中设置启动窗体的信息。
- 如何:将多个事件连接到 Windows 窗体中的单个事件处理程序 
 解释在 Windows 窗体应用程序中,如何使用 C# 中“属性”窗口的“事件”视图,将多个事件连接到单个事件处理程序。
- 如何:用 Windows 窗体创建多窗格用户界面 
 解释如何创建多窗格用户界面,它类似于 Microsoft Outlook 中使用的用户界面,带有“文件夹”列表、“邮件”窗格和“预览”窗格。
- 如何:向 Windows 窗体添加背景图像 
 解释如何将背景图像置于控件或窗体本身。通过使用“属性”窗口可以轻松实现此目的。
- 如何:在设计时为 Windows 窗体上的控件设置工具提示 
 解释如何在代码或 Windows 窗体设计器中设置工具提示字符串。
- 如何:向 Windows 窗体添加 ActiveX 控件 
 解释如何在 Windows 窗体上添加 ActiveX 控件。
- 如何:创建 Windows 窗体控件的访问键 
 解释如何在菜单、菜单项或控件(如按钮)标签的文本中创建快捷键。
在运行时使用 Windows 窗体
- 如何:在运行时在控件集合中进行添加或移除 
 提供应用程序开发中的常见任务,例如在窗体上的任何容器控件中添加和移除控件。
- 如何:启用 Windows XP 视觉样式 
 演示如何在 Windows 窗体的工作区中启用视觉样式。
- 如何:使启动 Windows 窗体不可见 
 说明如何使基于 Windows 的应用程序主窗体在应用程序启动时不可见。
- 如何:将 Windows 窗体保持在最前面 
 显示在设计时或编程时,如何使窗体成为位于 Windows 窗体应用程序最顶端的窗体。
- 如何:显示有模式和无模式 Windows 窗体 
 显示如何将窗体显示为模式对话框或无模式对话框。
控件
TextBox 控件
- 如何:在 Windows 窗体 TextBox 控件中选择文本 
 演示如何以编程方式在 Windows 窗体 TextBox 控件中选择文本。
- 如何:在字符串中放置引号(Windows 窗体) 
 显示如何将引号 (" ") 置于文本字符串中。
- 如何:创建只读文本框(Windows 窗体) 
 显示如何将可编辑的 Windows 窗体文本框转换成只读控件。
- 如何:使用 Windows 窗体 TextBox 控件创建密码文本框 
 演示如何使用 Windows 窗体 TextBox 控件创建密码文本框。
- 如何:控制 Windows 窗体 TextBox 控件中的插入点 
 演示如何控制 TextBox 控件中的插入点。
- 如何:将数据绑定到 MaskedTextBox 控件 
 显示如何将数据绑定到 MaskedTextBox 控件。
- 演练:使用 MaskedTextBox 控件 
 阐释如何执行以下任务:- 初始化 MaskedTextBox 控件。 - 当字符与掩码不符时警告用户。 - 当用户试图提交的值对该类型无效时警告用户。 
RichTextBox 控件
- 如何:将文件加载到 Windows 窗体 RichTextBox 控件中 
 解释如何将文件加载到可以显示纯文本、Unicode 纯文本或 RTF 格式文件的 Windows 窗体 RichTextBox 控件。
- 如何:在 Windows 窗体 RichTextBox 控件中显示滚动条 
 为 RichTextBox 控件的 ScrollBars 属性提供七个可能的值,在下表中对这些值进行了说明。
- 如何:为 Windows 窗体 RichTextBox 控件设置字体属性 
 描述如何使用 SelectionFont 属性为选定字符设置粗体、下划线或斜体格式。
- 如何:在 Windows 窗体 RichTextBox 控件中设置缩进、悬挂缩进和带项目符号的段落 
 描述如何通过设置 SelectionBullet 属性将选定段落设置为项目符号列表格式。也可以使用 SelectionIndent、SelectionRightIndent 和 SelectionHangingIndent 属性设置段落相对于控件的左右边缘以及其他文本行的左边缘进行缩进。
- 如何:在 Windows 窗体 RichTextBox 控件中启用拖放操作 
 描述如何通过处理 DragEnter 和 DragDrop 事件,在 Windows 窗体 RichTextBox 控件中启用拖放操作。
- 如何:使用 Windows 窗体 RichTextBox 控件显示 Web 样式的链接 
 描述如何编写代码,以便通过在单击链接时显示链接文本中指定的网站来打开浏览器窗口。
Button 控件
- 如何:响应 Windows 窗体按钮的单击 
 解释 Windows 窗体 Button 控件的最基本用法,也就是在单击按钮时执行某些代码。
- 如何:使用设计器将 Windows 窗体按钮指定为“接受”按钮 
 解释如何将 Button 控件指定为接受按钮(也称为默认按钮)。每当用户按 Enter 时,就会单击默认按钮,而不管窗体上其他哪个控件具有焦点。
- 如何:使用设计器将 Windows 窗体按钮指定为“取消”按钮 
 解释如何将 Button 控件指定为取消按钮。每当用户按 Esc 时,就会单击取消按钮,而不管窗体上的其他哪个控件具有焦点。通常设计这样的按钮是为了使用户可以快速退出操作而不执行任何动作。
CheckBox 控件
- 如何:使用 Windows 窗体 CheckBox 控件设置选项 
 提供有关如何使用 Windows 窗体 CheckBox 控件为用户提供“真/假”或“是/否”选项的信息。当控件选定时,将显示一个复选标记。
- 如何:响应 Windows 窗体 CheckBox 的单击 
 解释如何编写应用程序,以根据复选框的状态执行某些操作。
RadioButton 控件
- 如何:按功能分组 Windows 窗体 RadioButton 控件
 解释如何通过在容器(如 Panel 控件、GroupBox 控件或窗体)内绘制单选按钮来对它们进行分组。
ListBox 控件、ComboBox 控件和 CheckedListBox 控件
- 如何:将 Windows 窗体 ComboBox 控件或 ListBox 控件绑定到数据 
 解释如何将 ComboBox 和 ListBox 绑定到数据,以便执行诸如浏览数据库中的数据、输入新数据或编辑现有数据等任务。
- 如何:为 Windows 窗体 ComboBox 控件、ListBox 控件或 CheckedListBox 控件创建查找表 
 提供一些示例表格,演示如何存储和显示食品订购单数据。
- 如何:在 Windows 窗体 ComboBox 控件、ListBox 控件或 CheckedListBox 控件中添加或移除项 
 提供有关如何向 Windows 窗体 ComboBox、ListBox 或 CheckedListBox 中添加项的示例。但是,本主题演示最简单的方法,并且不需要数据绑定。
- 如何:访问 Windows 窗体 ComboBox 控件、ListBox 控件或 CheckedListBox 控件中的特定项 
 演示如何访问 Windows 窗体 ComboBox、ListBox 或 CheckedListBox 中的特定项。这使您可以编程方式确定列表中任意给定位置处的内容。
- 如何:对 Windows 窗体 ComboBox 控件、ListBox 控件或 CheckedListBox 控件的内容排序 
 演示如何使用支持排序的数据源:数据视图、数据视图管理器和已排序数组。
CheckedListBox 控件
- 如何:确定 Windows 窗体 CheckedListBox 控件中的选定项
 演示如何通过循环访问存储在 CheckedItems 属性中的集合或使用 GetItemChecked 方法逐句通过列表来确定选中项,从而确定 Windows 窗体 CheckedListBox 控件中的选中项。
DataGridView 控件
- 如何:使用设计器将数据绑定到 Windows 窗体的 DataGridView 控件 
 解释如何使用设计器将 DataGridView 控件连接到多种不同的数据源变体,其中包括数据库、业务对象或 Web 服务。
- 如何:验证 Windows 窗体 DataGridView 控件中的数据 
 演示如何验证用户输入到 DataGridView 控件中的数据。
- 如何:处理在 Windows 窗体 DataGridView 控件中输入数据时发生的错误 
 演示如何使用 DataGridView 控件向用户报告数据输入错误。
- 如何:为 Windows 窗体 DataGridView 控件中的新行指定默认值 
 演示如何使用 DefaultValuesNeeded 事件为新行指定默认值。
- 如何:创建未绑定的 Windows 窗体 DataGridView 控件 
 演示如何以编程方式填充 DataGridView 控件而无需将其绑定到数据源。
- 如何:将未绑定的列添加到绑定了数据的 Windows 窗体 DataGridView 控件 
 演示如何创建 Details 按钮的未绑定列,以便在实现主控/详细方案时,显示与父表中特定行相关的子表。
- 如何:在 Windows 窗体 DataGridView 控件的单元格中显示图像 
 演示如何从嵌入的资源中提取图标,并将它转换成位图,以便在图像列的每个单元格中显示。
- 如何:在 Windows 窗体 DataGridView 单元格中承载控件 
 显示如何创建日历列。此列的单元格在普通的文本框单元格中显示日期,但当用户编辑单元格时,就会出现 DateTimePicker 控件。
- 演练:验证 Windows 窗体 DataGridView 控件中的数据 
 演示如何从 Northwind 示例数据库中的 Customers 表中检索行,并将其显示在 DataGridView 控件中。在编辑 CompanyName 列中的单元格时,如果试图离开该单元格,则系统将检查新的公司名称字符串以确保其不为空。如果新值是一个空字符串,则 DataGridView 将阻止光标离开该单元格,直到输入一个非空字符串。
- 演练:处理在 Windows 窗体 DataGridView 控件中输入数据时发生的错误 
 演示如何从 Northwind 示例数据库中的 Customers 表中检索行,并将其显示在 DataGridView 控件中。当在新行或已编辑的现有行中检测到重复的 CustomerID 值时,将发生 DataError 事件,此事件将通过显示指示异常的 MessageBox 来进行处理。
- 演练:创建未绑定的 Windows 窗体 DataGridView 控件 
 演示如何在“取消绑定”模式下填充 DataGridView 控件以及管理行的添加和删除。
DataGridView 布局和格式设置
- 如何:使用设计器使 Windows 窗体 DataGridView 控件中的列成为只读 
 演示如何使包含数据的列变为只读的过程。
- 如何:使用设计器在 Windows 窗体的 DataGridView 控件中启用列重新排序 
 演示如何允许用户对列重新排序。当您启用列重新排序时,用户可以用鼠标拖动列标题,将某个列移动到一个新的位置。
- 如何:使用设计器更改 Windows 窗体 DataGridView 控件中列的顺序 
 解释如何使用设计器更改 Windows 窗体 DataGridView 控件中列的顺序。
- 如何:使用设计器添加和移除 Windows 窗体 DataGridView 控件中的列 
 解释如何使用设计器在 Windows 窗体 DataGridView 控件中添加或移除列。
使用控件进行数据绑定
- 如何:处理因数据绑定而发生的错误和异常
 演示如何处理数据绑定操作时发生的错误和异常。
BindingSource 控件
- 如何:使用设计器将 Windows 窗体控件与 BindingSource 组件进行绑定 
 演示在设计时如何绑定控件。
- 如何:使用 Windows 窗体 BindingSource 组件创建查找表 
 演示如何使用 ComboBox 控件显示具有从父表到子表的外键关系的字段。
- 如何:使用 BindingSource 在 Windows 窗体控件中反映数据源更新 
 演示如何使用 ResetBindings 方法向绑定控件通知有关数据源中的更新。
- 如何:使用 Windows 窗体 BindingSource 组件对 ADO.NET 数据进行排序和筛选 
 演示如何用 BindingSource 排序和筛选数据。
- 如何:使用 Windows 窗体 BindingSource 绑定到 Web 服务 
 演示如何创建和绑定到客户端代理。
绑定导航器
- 如何:使用 Windows 窗体 BindingNavigator 控件定位数据 
 解释如何设置 BindingNavigator 控件。
- 如何:使用 Windows 窗体 BindingNavigator 控件浏览数据集 
 演示如何使用 BindingNavigator 控件浏览数据库查询的结果。
ListView
- 如何:使用 Windows 窗体 ListView 控件添加和移除项 
 解释在 Windows 窗体 ListView 控件中添加和移除项的过程。可在任何时候添加或移除列表项。
- 如何:向 ListView 控件添加搜索功能 
 演示如何在短时间内创建具有专业外观的 Windows 窗体应用程序。
- 如何:选择 Windows 窗体 ListView 控件中的项 
 演示如何以编程方式在 Windows 窗体 ListView 控件中选择项。
- 如何:显示 Windows 窗体 ListView 控件的图标 
 演示如何在列表视图中显示图像。
- 如何:使用 Windows 窗体 ListView 控件在列中显示子项 
 演示如何将子项添加到列表项中。
TreeView
- 如何:设置 Windows 窗体 TreeView 控件的图标 
 演示如何在树视图中显示图像。
- 如何:添加和删除 Windows 窗体 TreeView 控件中的节点 
 演示如何以编程方式在树视图中添加和移除节点。
- 如何:确定被单击的 TreeView 节点(Windows 窗体) 
 演示如何确定单击了哪个 TreeView 节点。
容器控件
- 如何:水平拆分窗口 
 解释如何创建可水平拆分 SplitContainer 控件的拆分器。
- 如何:用 Windows 窗体创建多窗格用户界面 
 演示如何创建一个多窗格用户界面,它类似于 Microsoft Outlook 中使用的用户界面,具有“文件夹”列表、“邮件”窗格和“预览”窗格。
- 如何:在 TableLayoutPanel 控件中跨行和跨列 
 演示 TableLayoutPanel 控件中的控件如何跨越相邻的行和列。
- 演练:使用 TableLayoutPanel 在 Windows 窗体上排列控件 
 阐释如何执行以下任务:- 创建 Windows 窗体项目。 - 按行和列排列控件。 - 设置行属性和列属性。 - 使用控件跨行和跨列。 - 自动处理溢出。 - 通过在工具箱中双击控件来插入控件。 - 通过绘制控件的轮廓来插入控件。 - 将现有控件重新分配到不同的父级。 
- 演练:使用 FlowLayoutPanel 在 Windows 窗体上排列控件 
 阐释如何执行以下任务:- 创建 Windows 窗体项目。 - 水平和垂直排列控件。 - 更改流方向。 - 插入流中断符。 - 使用空白和边距排列控件。 - 通过在工具箱中双击控件来插入控件。 - 通过绘制控件的轮廓来插入控件。 - 使用插入符号插入控件。 - 将现有控件重新分配到不同的父级。 
图片控件和图像控件
- 如何:使用设计器加载图片(Windows 窗体) 
 解释在设计时,如何将 Image 属性设置为有效图片,从而在窗体中加载和显示图片。
- 如何:在运行时设置图片(Windows 窗体) 
 解释如何以编程方式设置 Windows 窗体 PictureBox 控件显示的图像。
- 如何:在运行时修改图片的大小或位置(Windows 窗体) 
 解释如何将窗体上的 Windows 窗体 PictureBox 控件的 SizeMode 属性设置为不同的值。
DateTimePicker
- 如何:使用 Windows 窗体 DateTimePicker 控件设置和返回日期 
 解释如何在显示控件前设置 Value 属性,以便确定最初将选中控件中的哪个日期。
- 如何:使用 Windows 窗体 DateTimePicker 控件以自定义格式显示日期 
 解释如何显示自定义格式并将 CustomFormat 属性设置为格式字符串。
MonthCalendar
- 如何:在 Windows 窗体 MonthCalendar 控件中选择日期范围 
 演示如何使用 MonthCalendar 控件的属性设置日期范围,或获取由用户设置的选择范围。
- 如何:使用 Windows 窗体 MonthCalendar 控件以粗体显示特定日期 
 演示如何以粗体或普通字体显示日期。
- 如何:在 Windows 窗体 MonthCalendar 控件中显示多个月份 
 演示如何在 Windows 窗体 MonthCalendar 控件中显示多个月份。
- 如何:更改 Windows 窗体 MonthCalendar 控件的外观 
 演示如何更改月历的配色方案,如何在控件底部显示当前日期以及如何显示周数。
数据访问(针对 Windows 窗体)
- 演练:在 Windows 应用程序的不同窗体间传递数据 
 逐步指导如何将数据从一个窗体传递到另一个窗体上的方法。
- 演练:在 Windows 应用程序中的窗体上显示数据 
 创建一个简单的窗体,在多个单独的控件中显示单个表中的数据。
- 演练:在 Windows 应用程序中创建一个用于搜索数据的窗体 
 演示如何创建用于搜索数据的 Windows 窗体。
ToolStrip
- 如何:将 ToolStripItem 置于 ToolStrip 
 解释如何将 ToolStripItem 移到或添加到 ToolStrip 的左侧或右侧。
- 如何:使用设计器禁用 ToolStripMenuItem 
 解释如何在设计时禁用菜单项。
- 如何:移动 ToolStripMenuItem 
 解释如何将整个顶级菜单及其菜单项移到 MenuStrip 上的不同位置。也可以在顶级菜单之间移动各个菜单项,或在菜单内更改菜单项的位置。
- 如何:在 Windows 窗体中更改 ToolStrip 文本和图像的外观 
 解释如何控制是否在 ToolStripItem 上显示文本和图像,以及它们如何互相对齐及与 ToolStrip 对齐。
上下文菜单
- 如何:将快捷菜单与 Windows 窗体 NotifyIcon 组件关联 
 演示如何将快捷菜单与 Windows 窗体 NotifyIcon 组件关联。
- 如何:使用 Windows 窗体 ContextMenu 组件添加和移除菜单项 
 说明如何在 Windows 窗体中添加和移除快捷菜单项。
打印
- 如何:创建标准的 Windows 窗体打印作业 
 演示如何通过编写用于处理 PrintPage 事件的代码来指定打印内容和打印方式。
- 如何:完成 Windows 窗体打印作业 
 演示如何通过处理 PrintDocument 组件的 EndPrint 事件来完成打印作业。
- 如何:打印 Windows 窗体中的多页文本文件 
 显示如何使用将对象(图形或文本)拖动到设备(如屏幕或打印机)的方法打印 Windows 窗体中的文本。
- 如何:在 Windows 窗体中选择连接到用户计算机的打印机 
 显示如何选择打印机,然后打印文件。
- 如何:在运行时从 PrintDialog 中捕获用户输入 
 显示如何在运行时更改打印选项。通过 PrintDialog 组件和 PrinterSettings 类可完成此项操作。
用户控件和自定义控件
多文档界面 (MDI)
- 如何:创建 MDI 父窗体 
 演示如何在设计时创建 MDI 父窗体。
- 如何:创建 MDI 子窗体 
 演示如何创建显示 RichTextBox 控件的 MDI 子窗体,该子窗体类似于大多数字处理应用程序。
- 如何:排列 MDI 子窗体 
 演示如何将子窗体显示为层叠、水平平铺或垂直平铺,或者显示为排列在多文档界面 (MDI) 窗体下部的子窗体图标。
- 如何:确定活动的 MDI 子窗体 
 演示如何确定活动 MDI 子窗体,并将它的文本复制到剪贴板。
- 如何:将数据发送到活动的 MDI 子窗体 
 演示如何将数据从剪贴板发送到活动 MDI 子窗口。
图形
- 如何:绘制空心形状 
 显示如何在窗体上绘制空心椭圆和矩形。
- 如何:创建线性渐变 
 显示如何使用水平线性渐变画笔填充线条、椭圆和矩形。
- 如何:创建路径渐变 
 显示如何自定义用渐变颜色填充形状的方式。
- 如何:使用线条、曲线和形状创建图形 
 解释如何创建具有单个或多个图形的路径。
- 如何:创建用于绘制的 Graphics 对象 
 解释如何创建绘制的图形对象。
- 如何:创建缩略图像 
 演示如何由位图文件构造图像对象。
- 如何:创建垂直文本 
 演示如何使用 StringFormat 对象指定在垂直方向而不是在水平方向书写文本。
- 如何:对齐绘制的文本 
 演示如何在矩形内绘制文本。每行文本都居中,整个文本块在矩形内居中。
- 如何:在 Windows 窗体上绘制线条 
 演示如何在窗体上绘制线条。
- 如何:旋转、反射和扭曲图像 
 演示如何通过指定原始图像的左上角、右上角和左下角作为目标点对图像进行旋转、反射和扭曲。
- 如何:在 Windows 窗体上绘制文本 
 演示如何使用 Graphics 的 DrawString 方法在窗体上书写文本。
- 如何:加载和显示位图 
 显示如何从文件加载位图,并在屏幕上显示该位图。
- 如何:加载和显示图元文件 
 显示如何使用 Metafile 类的方法记录、显示和检查矢量图像。
本地化和全球化 Windows 窗体
- 演练:本地化 Windows 窗体 
 演示本地化 Windows 应用程序项目的过程。
- 如何:使用 AutoSize 属性和 TableLayoutPanel 控件支持对 Windows 窗体的本地化 
 演示如何启用适应不同字符串大小的布局。
- 如何:为 Windows 窗体全球化设置区域性和用户界面的区域性 
 演示如何设置适合于特定区域性的格式设置选项。
- 如何:为全球化在 Windows 窗体中按从右到左的顺序显示文本 
 演示如何从右向左显示文本。
其他资源
- Visual Studio 2005 开发人员中心 
 包含介绍如何使用 Visual Studio 开发应用程序的大量文章和资源。该网站的内容定期更新。
- Visual C# 开发人员中心 
 包含介绍如何开发 C# 应用程序的大量文章和资源。该网站的内容定期更新。
- Microsoft .NET Framework 开发人员中心 
 包含介绍如何开发和调试 .NET Framework 应用程序的大量文章和资源。该网站的内容定期更新。