中键入: “添加模块”命令,打开模块窗口,在该窗口中键入 Sub Main 然后按回车键,将显示该过程的开头和结束语句,然后即可在两个语句之间输入 程序代码。 Sub Main过程位于模块中。一个项目可以含有多个模块,但Sub Main过程只 能有一个。Sub Main过程通常是作为启动过程编写的,也就是说,程序员编写 Sub Main过程,总是希望作为第一个过程首先执行
。但是,与C语言中的Main() 函数不同,Sub Main过程不能自动被识别,也就是说,Visual Basic.NET并不自 动把它作为启动过程,必须通过与设置启动窗体类似的方法把它指定为启动过程。 如果把Sub Main指定为启动过程,则可以在运行程序时自动执行。由于Sub Main过程可先于窗体模块执行,因此常用来设定初始化条件。例如: Sub Main() 初始化 ...... Dim F2 As New Form2 F2.Show End Sub 该过程先进行所需要的初始化处理,然后显示一个窗体。
类(Class)、模块(Module) 和命名 空间( Namespace)
类和模块构成了源文件的大部分代码,包括 Sub过程、Function过程、Method和Event语 句、变量声明以及程序运行所需的其他代码。
条件编译语句
条件编译语句,它可以出现在模块中的任何位 置,当满足某种条件时执行指定的代码。 由于条件编译语句只能在编译时执行,因此可 用于程序调试。
10.3 模块与窗体
模块(Module)和窗体都是相对独立的程序 单元,窗体是一种特殊的类,即“可视”的类。 在一般情况下,模块和窗体是使用较多的程序 单元。在单窗体程序设计中,使用模块的必要 性不大,而在多窗体程序设计中,模块有着重 要的作用,多个窗体共用的数据和过程可以在 模块中定义,从而可以节省代码,提高程序质 量。
模块
模块由全局变量声明、模块层声明及通用过程 等几部分组成
全局变量声明通常放在模块的首部,全局变量用 Public声明 模块层声明包括在模块中使用的变量和常量 ,模块 层变量用Dim或Private声明
在大型应用程序中,主要操作在模块中执行, 窗体用来实现与用户之间的
通信。但在只使用 一个窗体的应用程序中,全部操作通
常用窗体 就能实现。在这种情况下,模块不是必需的。
窗体
窗体也称窗体模块,它包括三部分内容,即声 明部分、通用过程部分和事件过程部分
用Dim语句声明窗体模块所需要的变量,因而其作 用域为整个窗体模块 在声明部分执行之后,Visual Basic在事件过程部 分查找启动窗体中的Load事件过程
【例10.1】编写程序,打印如下所示的“数字金字塔”: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 ...... 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 “数字金字塔”分为若干层,但一般不要超过10 层,否则显示规则的“金字塔” 的操作要复杂一些。我们把输出“数字金字塔”的操作放在模块中,同时把所有 变量定义也放在模块中,然后在两个窗体中调用输出“数字金字塔”的过程,分 别输出层数不同的“金字塔”。
按以下步骤操作: (1)执行“项目”菜单中的“添加模块”命令,打开“添加新项”对话框, 在“名称”栏中输入模块的名称(这里使用默
认名称Module1),然后单击“打 开”按钮,打开模块代码窗口。 (2)在模块代码窗口中输入以下代码: Module Module1 Public SS As String Public F1 As New Form1() Public F2 As New Form2() Public CL As String = Chr(13) &; Chr(10)
Public Function DigOut(ByVal Num As Short, ByVal Start As Short) As String Dim i, j, k As Short Dim S As String = "" For i = 1 To Num For j = 1 To Start - 2 * i S=S&;"" Next j For k = 1 To i S = S &; Str(k) Next k For k = i - 1 To 1 Step -1 S = S &; Str(k) Next k S = S &; CL Next i Return S End Function End Module 在该模块中,用Public关键字定义了4个全局变量和1个通用过程。过程DigOut 用来输出“数字金字塔”,该过程有两个参数,其中Num用来指定“金