了一个窗体Form1, 则可通过下面的代码使该窗体隐藏: Me.Hide 而 Me.Close 将关闭当前窗体。 这里应注意,“Me.Hide”或“Me.Close”必须是当前窗体或其控件的事件过 程中的代码。
在一般情况下,关闭或隐藏的是当前窗体,而显示的是其他窗体。对于 当前窗体,可以用关键字Me作为窗体的名称或者省略窗体名称,但是,如何 引用其他窗体的名称呢?假定当前窗体名称为Form1,另有一个窗体,名称 为Form2,能不能用下面的代码隐藏Form1窗体、显示Form2窗体呢? Me.Hide Form2.Show 第一个语句是正确的,可以用它来隐藏当前窗体,但是第二个语句是错 误的,不能用它来显示Form2窗体。这是因为,在Visual Basic.NET中, Form2是一个类名,不是窗体名称,为了引用窗体Form2,必须建立它的实 例(instance),通过实例引用窗体。上面的代码应改为: Dim Fb As New Form2() Me.Hide() Fb.Show()
多窗体程序设计中应注意的
问题 指定启动窗体 窗体文件名与窗体名 多窗体程序的保存和加载
指定启动窗体
对于多窗体程序,必须指定其中一个窗体为启动窗体;如果未指 定,就把设计时的第一个窗体作为启动窗体 启动窗体通过“属性页”对话框来指定。
窗体文件名与窗体名
窗体文件名是窗体存盘时的文件名,窗体名是
程序中 窗体的引用名,这两个名字可以相同,也可以不相同。 窗体名只能在属性窗口中修改 窗体文件名可以通过以下两种方式修改:
在解决方案资源管理器窗口中修改 在窗体文件名的属性窗口中
修改
多窗体程序的保存和加载
多窗体程序由解决
方案文件(.sln)、项目文 件(.vbproj)、窗体文件(.vb)及模块文件 (.vb)组成,每个窗体和模块都作为一个单 独的文件保存。 多窗体程序的加载比较简单。只要打开项目文 件或解决方案文件,就能把与项目有关的窗体 文件和模块文件全部装入内存。
10.2
Visual Basic.NET程序结构
在传统的程序设计中,编程者对程序的“执行顺序” 是比较明确的。但是,在Visual Basic.
NET中,程序 的执行顺序不太容易确定,也就是说,很难勾画出程 序的执行“轨迹”。 扩展名为.vb的文件一般为代码文件。在前面所编写 的程序中,Windows窗体文件就是一种代码文件。在 编写代码文件时,应遵循下面的顺序:
·Option语句 ·Imports语句 ·Sub Main过程 ·类、模块和命名空间语句 ·条件编译
Option语句
Option语句为后续的代码建立基本的规则,以防止语 法和逻辑错误。Visual Basic.NET提供了三种Option 语句:
(1)Option Explicit语句:用来保证所有变量声明和拼写的 正确性,从而可以减少调试时间。如果设置为: Option Explicit On 则强制所有变量必须显式声明。 (2)Option Strict语句:可防止在使用不同类型的变量时发 生逻辑错误或数据丢失。 (3)Option Compare语句:用来指定比较字符串数据时所 使用的默认比较方法,即按Binary或Text排列进行比较。
Imports语句
通过Imports语句可以直接使用在其他类和命 名空间中定义的类和类型,而不必通过限定名 引用
Sub Main过程
在一个含有多个窗体的应用程序中,有时候需要在显 示多个窗体之前对一些条件进行初始化,这就需要在 启动程序时执行一个特定的过程。在Visual Basic.NET中,这样的过程称为启动过程,并命名为 Sub Main,它类似于C语言中的Main函数。 在一般情况下,整个应用程序从设计时的第一个窗体 开始执行。如果需要从其他窗体开始执行应用程序, 则可通过项目的“属性页”对话框指定启动窗体。但 是,如果有Sub Main过程,则可以(注意,是“可 以”,而不是“必须”)首先执行Sub Main过程。
Sub Main过程通常在模块窗口中建立。其方法是:执行“项目”菜单中的 执行“项目” 执行 添加模块”命令,打开模块窗口,在该窗口