第1章
Windows Form程序设计(相关知识体系系统学习)
1.1 .NET平台下开发Windows Form简介
读者学习了.NET Framework,C#语言及软件设计的基本知识后,是不是想开发Windows应用程序,既能方便自己的工作,又能让朋友使用,或者展示自己的独特创意?好,下面一起进入Windows Form开发。
1.1.1 Windows Form简介
Windows Form即Windows窗体,使用Windows窗体可以开发智能客户端。“智能客户端”是易于部署和更新的图形丰富的应用程序,无论是否连接到Internet它都可以工作,并且可以以比传统的基于Windows的应用程序更安全的方式访问本地计算机中的资源。
Windows窗体是.NET Framework的智能客户端技术,.NET Framework是一组可简化常用应用程序任务(如读写文件系统)的托管库。使用类似Visual Studio的开发环境,用户通过该开发环境可以创建Windows窗体智能客户端应用程序,以显示信息、请求用户输入,以及通过网络与远程计算机通信。
在Windows窗体中,“窗体”是向用户显示信息的可视界面。通常情况下,通过向窗体上添加控件并开发对用户操作(如单击或按下鼠标按键)的响应,生成Windows窗体应用程序。“控件”是显示数据或接受数据输入的相对独立的用户界面(UI)元素。
当用户对窗体或其中的某个控件进行操作时,将生成事件。应用程序使用代码对这些事件进行响应,并在事件发生时处理事件。
Windows窗体包含可添加到窗体上的各式控件,如用于显示的文本框、按钮、下拉列表、单选按钮,以及网页的控件。有关可在窗体上使用的所有控件的列表,请参见在Windows窗体上使用的控件。如果现有控件不满足需要,Windows窗体还支持使用UserControl类创建用户自己的自定义控件。
Windows窗体具有丰富的UI控件,可模拟像Microsoft Office这样的高端应用程序中的功能。使用ToolStrip和MenuStrip控件,可以创建包含文本和图像、显示子菜单及承载其他控件(如文本框和组合框)的工具栏和菜单。
使用Visual Studio的具有拖放功能的Windows窗体设计器,可以轻松创建Windows窗体应用程序。只需使用光标选择控件并将控件添加到窗体上所需的位置即可。设计器提供类似网格线和对齐线的工具,可简化对齐控件的操作。无论使用Visual Studio还是在命令行编译,都可以使用FlowLayoutPanel、TableLayoutPanel和SplitContainer控件以较短的时间创建高级窗体布局。
最后,如果用户必须创建自己的自定义界面元素,则可使用System.Drawing命名空间,其中包含了大量的类,可供选择用于直接在窗体上呈现线条、圆和其他形状。
许多应用程序必须从数据库、XML文件、XML Web Services或其他数据源显示数据。Windows窗体提供了一个名为DataGridView的灵活控件,用于使用传统的行和列格式显示此类表格数据,以使每条数据都占据自己的单元格。使用DataGridView时,可以自定义各个单元格的外观、将任意行和列锁定在现有位置,以及在单元格内显示复杂控件等。
使用Windows窗体智能客户端,通过网格连接数据源成为了一个简单的任务。Visual Studio 2005和.NET Framework 2.0中随Windows窗体提供的新组件BindingSource可以表示到数据源的连接,并公开了将数据绑定到控件、导航至上一条和下一条记录、编辑记录,以及将更改保存回原始数据源的方法。BindingNavigator控件提供一个与BindingSource组件的简单接口,供用户在记录间导航。
使用“数据源”窗口可以轻松地创建数据绑定控件。该窗口可显示项目中的数据源,例如数据库、Web服务和对象。通过将项从此窗口拖动到项目中的窗体可以创建数据绑定控件;还可以通过将对象从“数据源”窗口拖动到现有控件,来将现有控件数据绑定到数据。
“设置”是另一种可在Windows窗体中管理的数据绑定。大多数智能客户端应用程序必须保留一些关于其运行时状态的信息(如窗体的上次已知大小),并保留用户首选项数据(如所保存文件的默认位置)。应用程序设置功能提供了一种简单的方法,可将这两种设置保存在客户端计算机上,从而满足了这些需要。使用Visual Studio或代码编辑器定义设置后,这些设置将保存为XML并在运行时自动读回内存中。
编写完应用程序后,必须将它发送给用户,以便他们可以在自己的客户端计算机上安装并运行该应用程序。使用ClickOnce技术,只需几次单击即可从Visual Studio中部署应用程序,并为用户提供指向网站中应用程序的URL。ClickOnce管理应用程序中的所有元素和依赖项,并确保应用程序正确地安装在客户端计算机上。
ClickOnce应用程序可以配置为仅在用户连接到网络时运行,或者在联机和脱机时都可以运行。如果指定应用程序支持脱机操作,则ClickOnce将在用户的“开始”菜单中添加指向应用程序的链接。随后,用户不必使用URL即可打开应用程序。
更新应用程序时,需将新的部署清单和应用程序的新副本发布到Web服务器。ClickOnce将检测到存在可用更新并升级用户的安装,用户无须自定义编程来更新旧的程序集。
Windows窗体中提供的许多其他功能可以快速方便地实现一些常规任务,如对一些任务的支持,包括创建对话框、打印、添加帮助和文档,以及将应用程序本地化为多种语言。此外,Windows窗体依赖于.NET Framework的可靠安全系统。通过这一系统,可以向客户发布更安全的应用程序。
1.1.2 Windows Form开发技术
Windows Form是用于生成利用公共语言运行库的Windows客户端应用程序的框架。可用公共语言运行库支持的任何语言编写Windows窗体应用程序。使用Windows窗体的优点如下。
- 简单而且功能强大:Windows窗体是用于开发Windows应用程序的编程模型,它融合了Visual Basic 6.0编程模型的简单性与公共语言运行库的强大功能和灵活性。
- 所属权总成本较低:Windows窗体利用公共语言运行库的版本控制和部署功能,可提供随时间流逝降低的部署成本和更高的应用程序可靠性。这显著降低了用Windows窗体编写的应用程序的维护成本(TCO)。
- 控件的结构:Windows窗体提供用于控件和控件容器的结构,该结构基于控件和容器类的具体实现。这显著减少了控件和容器间的交互问题。
- 安全性:Windows窗体充分利用公共语言运行库的安全功能。这意味着Windows窗体可用于实现所有内容,从在浏览器中运行的不受信任的控件到安装在用户硬盘上的完全受信任的应用程序,应用范围十分广泛。
- XML Web服务支持:Windows窗体为快速轻松地连接到XML Web服务提供全面支持。
- 丰富的图形:Windows窗体是GDI+的第一批载体之一,GDI+是一种新版本的Windows图形设备接口(GDI),支持Alpha混合效果、纹理画笔、高级转换、多格式文本支持等。
- 灵活的控件:Windows窗体提供一组丰富的控件,其中包含Windows提供的所有控件。这些控件还提供新功能,如用于按钮、单选按钮和复选框的“平面”样式。
- 数据识别功能:Windows窗体对ADO.NET数据模型提供全面支持。
- ActiveX控件支持:Windows窗体对ActiveX控件提供全面支持。可以轻松地在Windows窗体应用程序中承载ActiveX控件。还可以将Windows窗体控件作为ActiveX控件承载。
- 授权:Windows窗体利用公共语言运行库的增强授权模型。
- 打印:Windows窗体提供打印框架,使应用程序能够提供各种打印报表。
- 辅助功能:Windows窗体控件实现由Microsoft活动访问(MSAA)定义的接口,这使得生成支持辅助功能(如屏幕读取器)的应用程序变得简单。
- 设计时支持:Windows窗体充分利用公共语言运行库提供的元数据和组件模型功能,为控件用户和控件实施者提供全面的设计时支持。