1.7 Windows窗体
窗体是应用程序的基本单元,对其功能和设计进行合理考虑是非常必要的。使用Windows窗体,可以创建基于Windows的功能强大的应用程序。窗体实质上是一块空白板,作为开发人员,可通过添加控件来创建用户界面,并通过编写代码来操作数据,从而填充这个空白板。为此,Visual Studio提供了一个有助于编写代码的集成开发环境,以及一个针对.NET Framework编写的丰富的控件集。通过使用代码来补充这些控件的功能,可以方便快捷地开发需要的解决方案。
1.7.1 Windows窗体简介
窗体是一小块屏幕区域,通常为矩形,可用来向用户显示信息并接受用户的输入。窗体可以是标准窗口、多文档界面(MDI)窗口、对话框或图形化例程的显示表面。定义窗体用户界面的最简单方法是将控件放在其表面上。窗体是对象,这些对象公开定义其外观的属性、定义其行为的方法以及定义其与用户的交互的事件。通过设置窗体的属性以及编写响应其事件的代码,可自定义该对象以满足应用程序的要求。
与.NET Framework中的所有对象一样,窗体是类的实例。用Windows窗体设计器创建的窗体是类,当运行时显示窗体的实例时,此类是用来创建窗体的模板。框架还使编程者得以从现有窗体继承,以便添加功能或修改现有行为。当向项目添加窗体时,可选择是从框架提供的Form类继承或从以前创建的窗体继承。另外,窗体也是控件,因为它们从Control类继承。
在Windows窗体项目内,窗体是用户交互的主要载体。通过组合不同控件集和编写代码,可从用户得到信息并响应该信息,可使用现有数据存储,还可以查询数据并将结果写回到用户本地计算机上的文件系统和注册表中。
虽然完全可以在代码编辑器中创建窗体,但使用Windows窗体设计器创建和修改窗体更简单。
使用窗体中可用的属性,可以确定所创建窗口或对话框的外观、大小、颜色和窗口管理功能。Text属性允许开发人员在标题栏中指定窗口的标题;Size和DesktopLocation属性允许开发人员定义窗口在显示时的大小和位置;可以使用ForeColor颜色属性更改窗体上放置的所有控件的默认前景色;FormBorderStyle、MinimizeBox和MaximizeBox属性允许开发人员控制运行时窗体是否可以最小化、最大化或调整大小。
除了属性之外,还可以使用此窗体的方法来操作窗体。例如,可以使用ShowDialog方法将窗体显示为模式对话框;可以使用SetDesktopLocation方法在桌面上定位窗体。
可以通过在窗体类中放置Main方法将窗体用作应用程序中的启动类。在Main方法中添加代码,以创建和显示窗体。为了运行窗体,还需要在Main方法中添加STAThread属性。关闭启动窗体时,应用程序也同时关闭。
1.7.2 创建简单的Windows窗体
本节以创建一个简单的Windows窗体为例,向读者演示创建一个窗体的过程。
1 启动Visual Studio 2005,选择“文件”→“新建项目”选项,打开“新建项目”对话框。在该对话框的左侧选择“Visual Basic”,然后在右侧选择“Windows应用程序”,并输入项目名称“My Windows”,或者采用默认的名称。
2 单击“确定”按钮完成项目的创建,将出现类似于如图1-12所示的界面,项目有一个默认的Form1窗体。
3 在Form1窗体上添加一个Button控件。并单击该按钮将其选定。在“属性”窗口中,将Text属性设置为“WindowsButton”。
4 双击该按钮,将打开代码编辑器,插入点已位于事件处理程序中,在此为其Click事件添加事件处理程序。输入如下的代码。
MessageBox.Show ("Windows!")
5 按F5键运行该应用程序。
6 当运行应用程序时,单击界面中的按钮并验证显示的内容。
7 关闭此Windows窗体并返回Visual Studio主界面。
Windows窗体也可在项目中添加。通过在解决方案资源管理器中用鼠标右键单击项目名,然后在弹出的快捷菜单中,选择“添加”→“新建项目”或“添加”→“Windows窗体”会出现如图1-25所示的“添加新项”对话框。若是通过“添加”→“新建项目”方式添加Windows窗体时,需要注意在模板中选择“Windows窗体”。
图1-25 “添加新项”对话框
输入窗体的名称或采用默认名称,然后单击“添加”按钮便完成将一个Windows窗体添加项目中。
1.7.3 MDI窗体
MDI窗体也就是多文档界面(MDI)应用程序,该应用程序使开发人员能同时显示多个文档,每个文档显示在各自的窗口中。MDI应用程序中常有包含子菜单的“窗口”菜单项,用于在窗口或文档之间进行切换。
多文档界面应用程序的基础是MDI父窗体。它是包含MDI子窗口的窗体,MDI子窗口是用户与MDI应用程序在其中进行交互的子窗口。在Windows窗体设计器中以及以编程方式创建MDI父窗体都很容易。只要将项目中的该窗体的IsMDIContainer属性设置为True,就将该窗体指定为了子窗口的MDI容器,该窗体就成为了MDI父窗体。
下面就以实例说明如何创建MDI父窗体和MDI子窗体。