您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VB >> 辅导 >> 正文    
  VB考试教程:多窗体程序设计 【注册男护士专用博客】          

VB考试教程:多窗体程序设计

www.nanhushi.com     佚名   不详 

二、多窗体程序设计   

当应用程序功能较强和分类较多,程序和用户的交互频繁时,如果只用一个窗体和用户进行交互,一方面难以进行合乎美观原则的设计,另一方面分类工作很难,设计出来的界面不符合友好原则。这时最好使用多重窗体程序设计,增强程序界面的友好性。

多窗体指的应用中有多个窗体,它们之间没有绝对的从属关系。每个窗体的界面设计与单窗体的完全一样,只是在设计之前应先建立窗体,这可以通过菜单“工程”/“添加窗体”命令实现。程序代码是针对每个窗体编写的,当然,应注意窗体之间存在的先后顺序和相互调用的关系。所以,多重窗体实际上是单一窗体的集合,而单一窗体是多重窗体程序设计的基础。

  一般说来,多窗体的设计基本分成以下几个步骤:  

 ◆分析应用要求,将其功能划分为不同的几部分

 ◆分别创建各个窗体、模块

 ◆在创建窗体时,除各窗体自身要完成的功能外,还要考虑窗体之间的调用关系

 ◆点击[工程]/[属性]菜单,在[启动对象]中选择应用运行时首先执行的对象

 ◆运行应用程序,检验应用及各窗体的运行情况

1、多窗体程序设计常用的方法

在单窗体程序设计中,所有的操作都在一个窗体中完成,不需要在多个窗体中切换。而在多窗体程序中,需要打开、关闭、隐藏或显示指定的窗体,这可以通过相应的语句和方法来实现。    

在多窗体程序设计经常用到下面四种方法:Load,Show Hide和Unload.

(1)Load方法

它的语法结构如下:

Load [窗体名称]

使用Load方法调用的窗体被存入内存,并不显示出来,同时会产生一个Form_Load()事件。

例如:Load Form2 '将Form2窗体存入内存

(2)Show方法

它的语法结构如下:

[窗体名称].Show

Show方法用来显示被调用的窗体。Show方法兼有装入和显示两种功能,也就是说,在执行Show方法时,如果窗体不在内存中,则Show方法会自动的把窗体调入内存,然后再显示出来。

例如: Load Form2

Form2.Show '将Form2存于内存,并显示Form2窗体

(3)Hide方法

它的语法结构如下:

[窗体名称].Hide

使用Hide方法会隐藏被调用的窗体,既不在屏幕上显示,但仍在内存中(与Unload方法不同),被调用的窗体中的属性等已经处于无效的状态。

例如:

Form1.Hide

Form2.Show '将Form隐藏,并显示Form2窗体

(4)Unload方法

它的语法结构如下:

Unload [窗体名称]

使用Unload方法会清除内存中指定的窗体,与此同时,窗体中的变量和属性等都会处于无效的状态,在移去窗体的同时会产生一个Form_QueryUnload()事件。

例如:Form1.Show

Unload Form2'显示Form1窗体,从内存中移去Form2窗体。

2、一个多窗体程序设计示例      

下面就以一个示例来说明如何运进多窗体的程序设计(见教材P283)。

(1)启动新工程 

1)设置属性  

首先启动一个新的工程,屏幕出现一个空白的窗体,窗体的属性设置如下:

属性 设置

Name

Form1

Caption

Form1

BorderStyle

3-Fixed Dialog'窗体的大小不能够在程序的运行过程中改变

MDIChild

False

StartUpPosition

2-CenterScreen'窗体在程序的运行过程中始终位于屏幕的中央

Moveable

False'在程序的运行过程中不能够移动窗体

2)添加控件

  在空白的窗体上添加如下控件:五个Label控件、四个TextBox控件和两个CommandButton控件。              

(2)添加窗体

选择菜单“工程(Project)”/“添加窗体(add form)”命令,弹出对话框,在添加窗体的对话框中选择"窗体"项,单击[打开]按钮,系统就会自动的向原有的工程中添加一个窗体。

1)添加控件   

在新的窗体上放置一CommandButton控件,作用是在隐藏新增的窗体的同时显示原有的窗体。

则窗体如下:

2)添加代码

在"继续"按钮的Command1_Click()事件中添加下列代码:

Private Sub Command1_Click()
    Form2.Hide '隐藏窗体2
    Form1.Show '显示窗体1
End Sub

程序说明:在窗体Form2被显示的过程中,单击[继续]按钮,就会激活Command1_Click()事件,然后通过Form2.Hide 和Form2.Show两条语句实现隐藏窗体和显示窗体的功能。

(3)添加说明模块

选择菜单[工程]/[添加模块],就会弹出对话框:

在模块的声明段中添加下列代码:

Global a1 as Single
Global a2 as Single
Global a3 as Single
Global a3 as Single '定义四个全局变量,分别用来存储第一季度,第二季度、第三季度和第四季度的销售情况

(4)添加程序代码

1)窗体Form1中的代码如下:

Private Sub Command1_Click()
 Form1.Hide
 Form2.Show
End Sub

Private Sub Command2_Click()
 End
End Sub

Private Sub Text1_Change()
 a1 = Val(Text1.Text) 'VAL()函数用于将字符串转化为数值型
End Sub

Private Sub Text2_Change()
 a2 = Val(Text2.Text)
End Sub

Private Sub Text3_Change()
 a3 = Val(Text3.Text)


End Sub

Private Sub Text4_Change()
 a4 = Val(Text4.Text)
End Sub

2)窗体Form2中的代码如下:

Private Sub Command1_Click()
 Form2.Hide
 Form1.Show
End Sub

Private Sub Form_Load()
 Form2.AutoRedraw = True '使窗体进入绘图模式
 Form2.ForeColor = &HFF0000 '用前景色绘制填充的矩形
 Line (300, 1000 - a1)-(800, 2000), , BF  
 Line (1200, 1000 - a2)-(1700, 2000), , BF
 Line (2100, 1000 - a3)-(2600, 2000), , BF
 Line (3000, 1000 - a4)-(3500, 2000), , BF
End Sub

(5)指定启动窗体

VB规定,对于多窗体程序,必须指定其中一个窗体为启动窗体,如果未指定,就把设计时的第一个窗体作为启动窗体。只有启动窗体才能在运行时自动显示出来,其它窗体必须通过Show方法显示。

启动窗体通过菜单“工程”/“工程属性”命令来指定。单击“通用”选项卡,单击“启动对象”栏右端的箭头,单击作为启动窗体的名字,“确定”。

(6)保存、运行

[程序演示]        [程序下载]

3、Sub Main过程

在一个含有多个窗体或多个工程的应用程序中,有时候需要在显示多个窗体之前对一些条件进行初始化,这就要在启动程序时执行一个特定的过程。在VB中,这样的过程称为启动过程,并命名为Sub Main过程。

一般情况下,整个应用程序从设计时的第一个窗体开始执行,需要首先执行的代码放在Form_Load事件过程中,如果需要从其它窗体开始执行应用程序,则可通过菜单“工程”/“工程属性”命令的“通用”选项卡指定启动窗体。但如果有Sub Main过程,则可以首先执行该过程。

Sub Main过程在标准模块中建立。其方法是:在标准模块窗口在键入:

    Sub Main

然后回车,将显示该过程的开头和结束语句,然后在两个语句之间输入程序代码。

Sub Main过程位于标准模块中。一个工程可以有多个标准模块,但Sub Main过程只能有一个,它通常是作为启动过程编写的。

与C语言不同,VB中的Sub Main过程不能被自动识别,必须把它指定为启动过程,方法与设置启动启动窗体类似。通过菜单“工程”/“工程属性”命令的“通用”选项卡指定启动过程。

如果把Sub Main指定为启动过程,则可在运行程序时先于窗体模块自动执行。

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。