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

VB考试教程:多窗体程序设计,第1张

二、多窗体程序设计

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

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

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

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

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

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

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

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

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

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

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

(1)Load方法

它的语法结构如下:

Load [窗体名称]

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

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

(2)Show方法

它的语法结构如下:

[窗体名称]Show

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

例如: Load Form2

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

(3)Hide方法

它的语法结构如下:

[窗体名称]Hide

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

例如:

Form1Hide

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

(4)Unload方法

它的语法结构如下:

Unload [窗体名称]

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

例如:Form1Show

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)”命令,d出对话框,在添加窗体的对话框中选择"窗体"项,单击[打开]按钮,系统就会自动的向原有的工程中添加一个窗体。

1)添加控件

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

则窗体如下:

2)添加代码

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

Private Sub Command1_Click()

Form2Hide '隐藏窗体2

Form1Show '显示窗体1

End Sub

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

(3)添加说明模块

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

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

Global a1 as Single

Global a2 as Single

Global a3 as Single

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

(4)添加程序代码

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

Private Sub Command1_Click()

Form1Hide

Form2Show

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Text1_Change()

a1 = Val(Text1Text) 'VAL()函数用于将字符串转化为数值型

End Sub

Private Sub Text2_Change()

a2 = Val(Text2Text)

End Sub

Private Sub Text3_Change()

a3 = Val(Text3Text)

首先做一个类似应用程序的窗体(其实就是一个空白窗体上,加上很多按钮,每单击一个按钮就打开你想要打开的窗体),然后设置ACCESS启动之后,首先就打开这个窗体。这样你每次启动打开你的这个数据库,ACCESS就会自动打开你做好的所谓类似应用程序的窗体了。

在ACCESS2007版本中,可以直接在ACCESS选项——当前数据库——显示窗体中设置。在ACCESS2003版本中可以建立一个宏来实现

可以的,而且非常简单:

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub MDIForm_Load()

SetParent FindWindow(vbNullString, "无标题 - 记事本"), MDIForm1hWnd

End Sub

这是在MDI主窗体启动时就把记事本“抓获”作为自己的子窗体。

注意,运行之前要先打开一个空白的记事本

补充说明:其实不但是MDI窗体,就是普通窗体,也可以把其他窗体作为自己的子窗体的。SetParent这个API函数的作用,就是给某个窗体重新找一个“父亲”,因此,理论上利用这个函数既可以把别的窗体作为自己的子窗体,也可以把自己作为其他窗体的子窗体,还可以把某个窗体作为另一个第三方窗体的子窗体,利用得好的话会很有意思的。

以上就是关于VB考试教程:多窗体程序设计全部的内容,包括:VB考试教程:多窗体程序设计、access2007里怎么把窗体做成程序一样的窗口、VB如何在MDI窗体中将别的exe程序作为该MDI窗体的子窗体调用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9602356.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存