1、1,Visual Basic 程序设计,北京电大,2,第三讲应用程序接口设计及代码编写,3,内容简介,1.本章以一个简单的计算器应用程序为实例 围绕VB应用程序界面设计和代码设计 较系统地分析可视化编程的步骤 可视化界面设计方法 菜单设计及窗体设计的原则 各种常用控件的用法 工程化思想和VB结构化程序设计知识。,4,2.通过本章的学习 你将系统地掌握VB编程的一般方法及相关知识。,5,学习目标,1掌握可视化界面设计的方法 2掌握变量和常量的概念及用法 3掌握运算符及流程控制语句的用法 4理解工程化思想和编程风格 5理解常用函数的使用方法 6了解窗体设计的基本原则 7了解“简单计算器”程序设计过程,6,3.1“简单的计算器”应用程序任务,7,3.1.1 任务概述,Windows操作系统自带了一个计算器程序,现在我们 来模仿它创建一个简单的但却属于我们自己的计算器 应用程序。 该程序实际上是对第一章“加法”程序的功能拓展, 它能完成简单的加、减、乘、除四则运算,8,运行主界面,9,帮助:关于窗体,10,3.1.2 界面布局,11,3.1.3 界面设计,0 新创建一个“标准EXE”工程 1设
2、置窗体属性 2放置框架控件 3放置命令按钮控件 4放置文本框控件 5设计菜单,12,3.1.4 代码设计,1窗体的Load事件 Private Sub Form_Load() txtFirst.Text = txtSecond.Text = txtLabel.Text = End Sub,13,2数字区的命令按钮的Click事件 (1)数字“0”按钮 Private Sub Command1_Click() 每点击一下该按钮,就在文本框的尾部加字符“0”。 如果txtLabel为空,则说明现在正在输入的是第1个数字; 否则表示输入的是第2个数字; If txtLabel.Text = Then txtFirst.Text = txtFirst.Text + 0 Else txtSecond.Text = txtSecond.Text + 0 End If End Sub,14,(2)数字“1”按钮 Private Sub Command3_Click() If txtLabel.Text = Then txtFirst.Text = txtFirst.Text + 1 Else txt
3、Second.Text = txtSecond.Text + 1 End If End Sub 依此可编写数字2至9命令按钮的Click事件代码, 请同学们自己完成。,15,3txtFirst文本框的Change事件 Private Sub txtFirst_Change() 每当txtFirst的内容发生变化时, 将变化结果随时映射到txtResult。 txtResult.Text = txtFirst.Text End Sub TxtSecond文本框的Change事件代码同上。,16,4正负号(+/-)命令按钮的Click事件 Private Sub Command2_Click() 如果txtLabel为空,则说明现在正在输入的是第1个数字; 否则表示当前正在输入的是第2个数字。 首先用Val函数将txtFirst.Text转换为数字,然后再乘以-1; If txtLabel.Text = Then txtFirst.Text = -1 * Val(txtFirst.Text) Else txtSecond.Text = -1 * Val(txtSecond.Text) En
4、d If End Sub,17,5加、减、乘、除命令按钮的Click事件 以“加、减”命令按钮为例,其他请同学们自己完成 Private Sub Command15_Click() txtLabel.Text = 加 End Sub Private Sub Command16_Click() txtLabel.Text = 减 End Sub,18,6“计算结果”命令按钮的Click事件 Private Sub Command17_Click() Dim MyResult As Double 定义一个Double类型的变量。 Select Case txtLabel.Text 以txtLabel.Text的值为多重分支条件 Case 加 当txtLabel.Text的值为“加”时 MyResult = Val(txtFirst.Text) + Val(txtSecond.Text) Case 减 当txtLabel.Text的值为“减”时 MyResult = Val(txtFirst.Text) - Val(txtSecond.Text) Case 乘 当txtLabel.Text的
5、值为“乘”时 MyResult = Val(txtFirst.Text) * Val(txtSecond.Text) Case 除 当txtLabel.Text的值为“除”时 MyResult = Val(txtFirst.Text) / Val(txtSecond.Text) End Select txtLabel.Text = 将txtLabel、txtSecond清空 txtSecond.Text = txtResult.Text = MyResult 将计算结果显示 txtFirst.Text = txtResult.Text 将计算结果做为第1个数字,以便继续运算。 End Sub,19,7“清空”命令按钮的Click事件 如果四则运算完成,希望继续进行另一个表达式的四则运算 工作,则点击此按钮,完成以下工作: txtFirst.Text = txtLabel.Text = txtSecond.Text = ,20,8“帮助”菜单的调用 事先通过VB集成开发环境“工程添加窗体”菜单, 使用“关于”对话框模板创建一个“关于”窗体 (缺省名为frmAbout)。然后在计算器应用程
6、序的 “帮助关于”子菜单的Click事件中加入以下代码: frmAbout.Show 1 在Show命令后加参数1, 表示以模态方式显示frmAbout窗体。,21,9“退出”命令按钮的Click事件 通过Unload Me命令结束应用程序。,22,程序演示及分析,23,3.2可视化界面设计基础,与“加法”程序相比,本程序的特点是: 在界面设计方面,用到的控件种类、数量均增加了许多,窗体的设计精细了许多,应用程序具有两个窗体。 控件间的联系比较紧密,比如数字区按钮的Click事件,会影响txtFirst和txtSecond文本框的Text属性值;而txtFirst控件的Text属性值的变化会进而影响txtResult。 程序代码的结构开始有点复杂,比如用到了IFTHEN之类的条件判断结构。,24,3.2.1 可视化界面设计概述,VB可视化程序设计包括两部分内容: 一是进行用户界面的设计; 二是编写程序代码。 由于用户是通过界面与应用程序进行对话的,而程序代码相对于用户又是隐藏的,从用户角度看,界面就是应用程序,25,1、窗体对象(Form)。窗体就是应用程序的对外接口,是其他控件的载体
7、和容器。 (1)单窗体:一个应用程序中只包含一个窗体。 (2)多窗体:一个应用程序中包含多个窗体 (3)MDI窗体:是一种特殊的多窗体界面,有一个父窗体和众多的子窗体组成。,26,2、美观的窗体界面还是有些基本原则 (1)不要使窗体上的颜色过多,否则不易读。 (2)如果要设计多色彩的窗体界面,那么应当尽量采用同一色系的颜色,比如兰、淡兰等。 (3)不要试图在一个窗体上放置过多的信息。 (4)尽可能以清晰简明的方式设计窗体。 (5)使用适当的颜色、图片来保持窗体的趣味性是必须,但要适度。 (6)界面元素应尽可能一致性。VB提供了众多的控件,但在设计时应当抛弃使用所有控件的想法,只选择最适合特定应用程序的控件。,27,“简洁、整齐、明确”,28,29,3.2.2 多窗体设计,1添加窗体 2设置启动窗体 :Main子过程 3窗体的装载和卸载 (1)Load语句 当使用窗体Show方法时,VB程序会自动装载窗体 Load Form2等效于Form2.Visible=False (2)Unload语句 Unload Me,30,4多窗体应用程序设计的一般步骤 (1)添加应用程序所需的所有的窗体、
8、模块。 (2)设置起始窗体,以及多窗体间的调用关系。 (3)按单窗体设计方法设计每个窗体。,31,3.2.3 MDI多文档窗体的设计,1MDI父窗体 一个VB工程中只能有一个MDI父窗体,创建的方法是: (1)打开或新建一个工程,单击“工程”菜单中的“添加MDI窗体”命令。 (2)在弹出的“添加MDI窗体”对话框中双击“MDI”窗体图标。 (3)这时就会出现一个默认名称为MDIForm1的新窗体。,32,MDI父窗体有两个非常重要的属性ActiveForm和ActiveControl,其中: ActiveForm属性:返回具有焦点或最后被激活的子窗体。 ActiveControl属性:返回活动子窗体上拥有焦点的控件。,33,2MDI子窗体 父窗体创建完成后,我们可以通过“工程”菜单添加若干标准窗体,然后将这些标准窗体的MDIChild属性值设置为True,该窗体便成为工程中的MDI子窗体了。 在设计时,子窗体和一般窗体看起来没有什么两样,但运行时就会发现,子窗体已被包含在MDI父窗体中了。 无论如何拖拉子窗体,也无法使它们摆脱父窗体的束缚。这说明,MDI父窗体是全有子窗体的容器。,34
9、,3MDI子窗体的显示方法 VB提供了两种同时显示多个MDI子窗体的方法:静态显示方法和动态显示方法。,35,(1)静态显示方法 静态显示方法是通过在设计应用程序时添加多个窗体来完成的。 假设程序中允许用户在MDI父窗体上最多同时打开3个窗体,那么设计时只要添加3个子窗体,在MDI父窗体中通过Show命令显示。,36,(2)动态显示方法 静态显示方法对设计者来说比较灵活,但最大的缺点是比较浪费系统资源,当所有子窗体具有相同特征时,就可以采用动态显示方法了。,37,动态显示方法不像静态显示方法那样在设计时就添加一大堆子窗体,它只需要设计一个子窗体,比如Form1,然后通过以下步骤就可以实现多子窗体显示了。 Dim MyNewForm As New Form1 MyNewForm.Show,38,MDI窗体示例,39,MDI窗体示例,Private Sub m1_Click() 当点击“新建”菜单时执行以下语句 Dim MyNewForm As New Form1 MyNewForm.Show End Sub Private Sub m2_Click() 对子窗体进行排列 MDIForm1.Arrange 0 End Sub,40,Arrange的主要参数,41,3.2.4 窗体的运行模式,1模态显示窗体 frmAbout.Show 1 当然也可以写成: frmAbout.Show VbModal 2非模态显示窗体 Form2.Show 或者写成: Form2.Show 0 Form2.Show VbModeless,42,模态和非模态显示例子,(1)非模态显示窗体的例子 Private Sub Command1_Click() Form2.Show MsgBox “你打开了Form2窗体!” End Sub (2)模态显示窗体的例子 Private Sub Command1_Click() Form2.Show1 MsgBox “你打开了Form2窗体!” End Sub,43,2最前端显示窗体 永远显示在所有窗体之上(TopMost),这种显示方
《北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT》由会员日度分享,可在线阅读,更多相关《北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT》请在金锄头文库上搜索。