
当应用程序功能较强和分类较多,程序和用户的交互频繁时,如果只用一个窗体和用户进行交互,一方面难以进行合乎美观原则的设计,另一方面分类工作很难,设计出来的界面不符合友好原则。这时使用多重窗体程序设计,增强程序界面的友好性。
多窗体指的应用中有多个窗体,它们之间没有绝对的从属关系。每个窗体的界面设计与单窗体的完全一样,只是在设计之前应先建立窗体,这可以通过菜单“工程”/“添加窗体”命令实现。程序代码是针对每个窗体编写的,当然,应注意窗体之间存在的先后顺序和相互调用的关系。所以,多重窗体实际上是单一窗体的集合,而单一窗体是多重窗体程序设计的基础。
一般说来,多窗体的设计基本分成以下几个步骤:
◆分析应用要求,将其功能划分为不同的几部分
◆分别创建各个窗体、模块
◆在创建窗体时,除各窗体自身要完成的功能外,还要考虑窗体之间的调用关系
◆点击[工程]/[属性]菜单,在[启动对象]中选择应用运行时首先执行的对象
◆运行应用程序,检验应用及各窗体的运行情况
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)
VB60
全称为VisualBasic
60,是微软公司推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具。如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VB
60没错的。即使考虑到VB程序本身编译和运行效率较低的不足(嘻嘻速度现在不是问题吧),单是它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,它仍不失一款优秀的编程工具,是初学者的首选。
也许你会问,我以前没学过任何一种语言,我能快速上手吗?别担心,没问题VB的语法的和QBASIB语言是基本相同的,也就是说它的语法是最容易被初学者所接受的。另外VB提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且VB提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以VB学起来简单,用起来方便。
接着看看VB语言的前景,在目前各种编程语言共存的时代,VB会不会落伍呢?当然不会了,在我写这篇文章的同时,微软已经透露了
VB70将完全面向对象的消息,可以肯定下一代VB的功能一定会强大很多,我们这些所谓的
VB
程序员总算可以放心了,VB不会落后于时代,毕竟它是使用人数最多的优秀的开发工具。
好了,侃了这么多关于VB的台前幕后,总之是为想学编程的你树立信心,编程一点都不难,只要你决定了开始,就让我们一起踏上愉快的编程之旅吧。
接下来谈谈怎样学习VB,先说说“看实例学VB60”系列教程,它是面向编程初学者的VB入门教程,这个教程的特点是抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,而是采用了每节一个生动有趣的小例子的形式,每个小例子中会涉及到一个或几个VB编程的知识点(可能是控件,也许会是某个函数或编程小技巧),使你快速入门。
从对编程一窍不通或从未接触过编程的状态,通过学习能够对VB60的编程环境比较熟悉,掌握VB开发界面的使用方法;对VB语言的基本语法大致了解,知道常见的语句的意义;学习VB常用控件的使用方法,并能将它们灵活运用到应用程序中;能开发简单的VB程序。到那时你已经能够继续深入的学习VB编程,可以继续参与到程序设计栏目其他版块的学习中去,嘻嘻,目标就是这样啦。
然后谈谈学习编程的方法,万事开头难,刚刚开始,遇到些困难没关系,慢慢来。编程是一个不断学习,不断积累的过程,编程的乐趣也正是存在于学习的过程中。我们每学一点,就赶快把它用到实际的程序中去,自己多学多用多实践,水平才能不断提高,这就是“学以致用”。
另外,编程涉及到很多的知识,象 *** 作系统的、软件工程的、硬件系统的以及编程思想等各个方面,这就需要我们多看看这方面的资料,扩充自己的知识面。
还有如果学习过程中遇到了什么问题,或者有什么好的心得,你可以到洪恩的“网上交流”的“编程技术”版去提问求助或是发表文章,那里有许多编程高手可以为你答疑,还有许多同样的初学者一起交流。
“求知无限”是网上学习的特点,如果你觉得自己能够更深的学习VB或是其他编程的知识时,“程序设计”栏目的其他版块将是理想的去处,希望我们能在这样的学习环境中不断进步。
教程分为三个大的部分,它们是由浅入深的一个系列,分别是:
一、熟悉一下VB60的编程环境
二、学习VB常用控件的使用方法
三、试着开发简单的VB应用程序
vb代码如下:
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
Dim d As Single, x1 As Single, x2 As Single
a = InputBox("请输入一元二次方程的系数a")
b = InputBox("请输入一元二次方程的系数b")
c = InputBox("请输入一元二次方程的系数c")
If a = 0 Then
a = InputBox("因为a≠0,你输入的a=0,请重新输入系数a")
End If
d = b b - 4 a c
If d >= 0 Then
x1 = (-b + Sqr(d)) / (2 a)
x2 = (-b - Sqr(d)) / (2 a)
Print "系数为"; a; b; c; "的一元二次方程的根分别为"; x1
Print "系数为"; a; b; c; "的一元二次方程的根分别为"; x2
Else
Print "此方程在实数范围内无解"
End If
End Sub
一、按钮“求一元二次方程”的vb代码如下:
Private Sub Command1_Click()
a = Text1Text
b = Text2Text
c = Text3Text
d = b b - 4 a c
If d >= 0 Then
X1 = (-b + Sqr(d)) / (2 a)
X2 = (-b - Sqr(d)) / (2 a)
Label4Caption = X1
Label5Caption = X2
Else
Label4Caption = "在实数范围内无解"
End If
End Sub
二、按钮“重置”的vb代码如下:
Private Sub Command2_Click()
Text1Text = ""
Text2Text = ""
Text3Text = ""
Label4Caption = ""
Label5Caption = ""
End Sub
三、按钮“退出”的vb代码如下:
Private Sub Command3_Click()
End
End Sub
特殊例子(指定系数c的值为5):
在窗体“Form1frm”的“Command1_click“事件中编写代码(请不要随便更改其它代码),使之能够实现如下功能:在Text1输入整数a、、Text2输入b,判断一元二次方程ax2+bx+5=0有无实数根。并在Text3文本框中显示判断结果,即有实数根则在Text3文本框中输出“有”,否则输出“无”。
VB程序代码如下:
Private Sub Command1_Click()
dim a as single,b as single
a = Text1Text
b = Text2Text
d = b b - 4 a 5
If d >= 0 Then
Text3Text="有"
Else
Text3Text="无"
End If
End Sub
如果不用dim定义变量,则上面的输入部分语句改为下面的语句,这样可以把字符变量类型转化为数值类型:
a =val(Text1Text)
b =val(Text2Text)
以上就是关于VB考试教程:多窗体程序设计全部的内容,包括:VB考试教程:多窗体程序设计、VB6.0入门教程和技巧有哪些、设计一个VB程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)