北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT_第1页
北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT_第2页
北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT_第3页
北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT_第4页
北京电大VisualBasic程序设计第3章应用程序接口设计及代码编写参考PPT_第5页
已阅读5页,还剩148页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,Visual Basic 程序设计,北京电大,2,第三讲应用程序接口设计及代码编写,3,内容简介,1.本章以一个简单的计算器应用程序为实例 围绕VB应用程序界面设计和代码设计 较系统地分析可视化编程的步骤 可视化界面设计方法 菜单设计及窗体设计的原则 各种常用控件的用法 工程化思想和VB结构化程序设计知识,4,2.通过本章的学习 你将系统地掌握VB编程的一般方法及相关知识,5,学习目标,1掌握可视化界面设计的方法 2掌握变量和常量的概念及用法 3掌握运算符及流程控制语句的用法 4理解工程化思想和编程风格 5理解常用函数的使用方法 6了解窗体设计的基本原则 7了解“简单计算器”程序设计过程,

2、6,3.1“简单的计算器”应用程序任务,7,3.1.1 任务概述,Windows操作系统自带了一个计算器程序,现在我们 来模仿它创建一个简单的但却属于我们自己的计算器 应用程序。 该程序实际上是对第一章“加法”程序的功能拓展, 它能完成简单的加、减、乘、除四则运算,8,运行主界面,9,帮助:关于窗体,10,3.1.2 界面布局,11,3.1.3 界面设计,0 新创建一个“标准EXE”工程 1设置窗体属性 2放置框架控件 3放置命令按钮控件 4放置文本框控件 5设计菜单,12,3.1.4 代码设计,1窗体的Load事件 Private Sub Form_Load() txtFirst.Text

3、= 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”按

4、钮 Private Sub Command3_Click() If txtLabel.Text = Then txtFirst.Text = txtFirst.Text + 1 Else txtSecond.Text = txtSecond.Text + 1 End If End Sub 依此可编写数字2至9命令按钮的Click事件代码, 请同学们自己完成,15,3txtFirst文本框的Change事件 Private Sub txtFirst_Change() 每当txtFirst的内容发生变化时, 将变化结果随时映射到txtResult。 txtResult.Text = txtFirs

5、t.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) End If

6、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.Tex

7、t的值为多重分支条件 Case 加 当txtLabel.Text的值为“加”时 MyResult = Val(txtFirst.Text) + Val(txtSecond.Text) Case 减 当txtLabel.Text的值为“减”时 MyResult = Val(txtFirst.Text) - Val(txtSecond.Text) Case 乘 当txtLabel.Text的值为“乘”时 MyResult = Val(txtFirst.Text) * Val(txtSecond.Text) Case 除 当txtLabel.Text的值为“除”时 MyResult = Val(tx

8、tFirst.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 = txtSeco

9、nd.Text =,20,8“帮助”菜单的调用 事先通过VB集成开发环境“工程添加窗体”菜单, 使用“关于”对话框模板创建一个“关于”窗体 (缺省名为frmAbout)。然后在计算器应用程序的 “帮助关于”子菜单的Click事件中加入以下代码: frmAbout.Show 1 在Show命令后加参数1, 表示以模态方式显示frmAbout窗体,21,9“退出”命令按钮的Click事件 通过Unload Me命令结束应用程序,22,程序演示及分析,23,3.2可视化界面设计基础,与“加法”程序相比,本程序的特点是: 在界面设计方面,用到的控件种类、数量均增加了许多,窗体的设计精细了许多,应用程序

10、具有两个窗体。 控件间的联系比较紧密,比如数字区按钮的Click事件,会影响txtFirst和txtSecond文本框的Text属性值;而txtFirst控件的Text属性值的变化会进而影响txtResult。 程序代码的结构开始有点复杂,比如用到了IFTHEN之类的条件判断结构,24,3.2.1 可视化界面设计概述,VB可视化程序设计包括两部分内容: 一是进行用户界面的设计; 二是编写程序代码。 由于用户是通过界面与应用程序进行对话的,而程序代码相对于用户又是隐藏的,从用户角度看,界面就是应用程序,25,1、窗体对象(Form)。窗体就是应用程序的对外接口,是其他控件的载体和容器。 (1)单

11、窗体:一个应用程序中只包含一个窗体。 (2)多窗体:一个应用程序中包含多个窗体 (3)MDI窗体:是一种特殊的多窗体界面,有一个父窗体和众多的子窗体组成,26,2、美观的窗体界面还是有些基本原则 (1)不要使窗体上的颜色过多,否则不易读。 (2)如果要设计多色彩的窗体界面,那么应当尽量采用同一色系的颜色,比如兰、淡兰等。 (3)不要试图在一个窗体上放置过多的信息。 (4)尽可能以清晰简明的方式设计窗体。 (5)使用适当的颜色、图片来保持窗体的趣味性是必须,但要适度。 (6)界面元素应尽可能一致性。VB提供了众多的控件,但在设计时应当抛弃使用所有控件的想法,只选择最适合特定应用程序的控件,27,

12、简洁、整齐、明确,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)添加应用程序所需的所有的窗体、模块。 (2)设置起始窗体,以及多窗体间的调用关系。 (3)按单窗体设计方法设计每个窗体,31,3.2.3 MDI多文档窗体的设计,1MDI父窗体 一个VB工程中只能有一个MDI父窗体,创建的方法是: (1)打开或新建一个工程

13、,单击“工程”菜单中的“添加MDI窗体”命令。 (2)在弹出的“添加MDI窗体”对话框中双击“MDI”窗体图标。 (3)这时就会出现一个默认名称为MDIForm1的新窗体,32,MDI父窗体有两个非常重要的属性ActiveForm和ActiveControl,其中: ActiveForm属性:返回具有焦点或最后被激活的子窗体。 ActiveControl属性:返回活动子窗体上拥有焦点的控件,33,2MDI子窗体 父窗体创建完成后,我们可以通过“工程”菜单添加若干标准窗体,然后将这些标准窗体的MDIChild属性值设置为True,该窗体便成为工程中的MDI子窗体了。 在设计时,子窗体和一般窗体看

14、起来没有什么两样,但运行时就会发现,子窗体已被包含在MDI父窗体中了。 无论如何拖拉子窗体,也无法使它们摆脱父窗体的束缚。这说明,MDI父窗体是全有子窗体的容器,34,3MDI子窗体的显示方法 VB提供了两种同时显示多个MDI子窗体的方法:静态显示方法和动态显示方法,35,1)静态显示方法 静态显示方法是通过在设计应用程序时添加多个窗体来完成的。 假设程序中允许用户在MDI父窗体上最多同时打开3个窗体,那么设计时只要添加3个子窗体,在MDI父窗体中通过Show命令显示,36,2)动态显示方法 静态显示方法对设计者来说比较灵活,但最大的缺点是比较浪费系统资源,当所有子窗体具有相同特征时,就可以采

15、用动态显示方法了,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,

16、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 Msg

17、Box “你打开了Form2窗体!” End Sub,43,2最前端显示窗体 永远显示在所有窗体之上(TopMost),这种显示方式称为最前端显示。 可以通过Windows的API函数SetWindowPos来实现这一功能,44,3ToolWindow窗体 VB集成环境中的“工具箱”窗口就是一种典型的ToolWindow窗体 最简单的方法则是将窗体的BorderStyle属性设置为3或4。 ToolWindow窗体与SetWindowPos函数一同使用,可以实现VB“工具箱”窗口显示效果,请同学动手试一式,45,3.3可视化界面高级设计,46,3.3.1 菜单设计,1菜单的基本属性和事件 菜单

18、的主要标题(Caption)、名称(Name)、索引(Index)、有效(Enabled)、可见(Visible)、复选(Check)和快捷键(ShortCut)等属性 菜单控件中只包含一个事件,即Click事件,47,菜单的基本组成,48,2下拉菜单的基本创建方法 新建一个窗体,利用菜单编辑器设计各菜单项。 利用代码编辑器窗口编写每个菜单项的Click事件过程。 3设置分隔条的方法 分隔条是一种特殊的菜单项。它与其他菜单项的主要区别是,标题(Caption)属性为减号,即“,49,4设置访问键和快捷键的方法 访问键:一般在标题中,通过“&”符合和相应的字母设置,此字母的下方就会出现一下划线。

19、用户可以通过Alt+字母来选择此项。 快捷键:快捷键将显示在菜单项标题的右边,可以大大提高选择菜单命令的速度,可通过“菜单编辑器”进行设置,50,5弹出式菜单的创建方法 首先利用菜单编辑器建立菜单,方法与前面介绍的下拉式菜单创建方法一样。 利用窗体的PopupMenu方法显示弹出式菜单,51,利用菜单编辑器制作菜单,演示,52,菜单项目,53,运行界面,54,创建方法,1)新建一个工程,使用菜单编辑器按下表所示,在Form1上创建一下拉菜单。 2)在Form1的MouseDown事件中添加以下代码,则当用户在窗体上点击鼠标右键时,弹出快捷菜单,如下图所示。 Private Sub Form_M

20、ouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 如果点击的是鼠标右键,则弹出mnuFile菜单 If Button = 2 Then PopupMenu mnuFile End If End Sub,55,3.3.2 框架、单选钮和复选框控件,1框架(Frame)控件 2单选钮(OptionButton)和复选框(CheckBox)控件,56,基本用法,复选框:选中状态,Frame框架,单选钮:选中状态,57,3.3.3 列表框控件(ListBox,文本框,列表框,58,1List属性 List1.

21、List(0)= 计算应用专业 List1.List(1)= “软件开发专业” 可以用AddItem方法添加,59,2ListIndex属性 主要用来设置或返回控件中当前选定项目的索引 如果选定第一个项目,则属性值为0,第二个为1,依此类推。若未选定项目,则ListIndex的值为-1 List1.List(List1.ListIndex,60,3Text属性 List1.Text的结果与List1.List(List1.ListIndex)表达式的结果是完全相同的。 4ListCount属性 该属性返回列表框中的项目总数目。上例中,List1.ListCount的值为7,61,5AddIte

22、m方法 列表框控件最常用的方法是AddItem,主要用来添加新项目,常用的语法是: List1.AddItem 字符串 6RemoveItem方法 该方法主要用来删除列表框中的项目,例如要删除列表框中的第一个项目,则可以使用以下语句: List1.RemoveItem 0或者 List1.RemoveItem 计算应用专业,62,7Clear方法 主要用来删除列表中的所有项目。 8Click事件 与其他多数控件一样,实际应用中,我们最常用的是List控件的Click和DblClick,63,3.3.4 组合框控件(ComboBox,可以将组合框控件理解为文本框和列表框控件的功能结合体,64,6

23、5,3.3.5 工具栏、状态栏和图标列表控件,相信熟悉Windows操作的同学对工具栏(ToolBar)和状态栏(StatusBar)的概念一定不会陌生 这两项东西属于界面设计的高级控件,并非用户界面所必须的,但它们却可以使用我们的界面更友好、更快捷。如果与图标列表控件(ImageList)一同使用,我们的界面会更加出色,66,1添加控件的方法,67,2使用实例,工具栏,提示文本,状态栏,68,代码,Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) 当用户点击工具栏上的按钮时,在状态栏的第二个窗格显示被点击

24、按钮的名称 参数Button表示当前被点击的按钮,其类型为按钮对象 状态栏的第二个窗格的值用Panels(2).Text表示 StatusBar1.Panels(2).Text = 你刚才点击的按钮是 + Button.Caption + End Sub,69,3.3.6 通用对话框控件(CommonDialog,在Windows应用程序中,我们经常可以见到打开(Open)、保存(Save)、颜色(Color)、字体(Font)、打印(Print)等对话框 VB利用本控件完成上述功能 在部件对话框中选择“Microsoft Common Dialog Control 6.0”复选框,将通用对话

25、框控件添加到工具箱中。该控件在设计阶段是可以看到的,但在运行时是不可见的,70,1“打开” 对话框,Private Sub Command1_Click() 设置对话框的标题 CommonDialog1.DialogTitle = 打开文件 设置文件过滤器 CommonDialog1.Filter = 所有文件|*.*|文本文件|*.txt 设置默认文件类型(2表示文本文件*.txt) CommonDialog1.FilterIndex = 2 显示“打开”对话框 CommonDialog1.ShowOpen 显示选择的文件名(全路径名) MsgBox 你刚才选择的文件名是:+CommonDi

26、alog1.FileName End Sub,71,2“另存为”对话框,Private Sub Command1_Click() 设置对话框的标题 CommonDialog1.DialogTitle = 打开文件 设置文件过滤器 CommonDialog1.Filter = 所有文件|*.*|文本文件|*.txt 设置默认文件类型(2表示文本文件*.txt) CommonDialog1.FilterIndex = 2 显示“另存为”对话框 CommonDialog1.ShowSave 显示刚才输入的文件名(全路径名) MsgBox 你刚才输入的文件名是:+CommonDialog1.FileN

27、ame End Sub,72,3“颜色”对话框,Private Sub Command1_Click() 设置颜色窗体的形状,有1、2、4、8等四个常用, 请同学们自己试一试 CommonDialog1.Flags = 1 显示“颜色”对话框 CommonDialog1.ShowColor 根据选择的颜色,改变文本框的前景色 Text1.ForeColor = CommonDialog1.Color End Sub,73,此外,还可以通过ShowPrinter、ShowFont和ShowHelp方法显示打印、字体和帮助对话框,它们的用法请同学们自己通过VB联机帮忙学习,74,3.3.7 其他常

28、用控件,当界面上的控件太多时,可以使用TabStrip控件将它们分组布置 当需要显示安装进度、程序执行进度时,可以使用ProgressBar控件 当希望制作类似于Windows资源管理器式的菜单时,可以使用TreeView控件 水平滚动条(HScrollBar)和垂直滚动条控件(VscrollBar)也可能会经常用到,75,3.4代码设计基础,而VB的代码就像一条线,将这些图形界面元素串在一起,从而可以使窗体、控件通过事件驱动机制连接为一个有机整体,76,3.4.1 变量的声明,77,1显式声明 Dim 变量名 As 数据类型 2隐性声明 VB允许在使用变量前不使用Dim语句进行事先定义,而由

29、VB自动将变量声明为变体型(Variant类型),这种方式称为隐性声明,78,隐性声明方法为书写程序提供了较多的灵活性,但也会降低了程序的执行效率,特别是可读性。当把一个变量声明为Variant类型时,这个变量可以用来存储各种数据。但是由此也会带来内存空间消耗量的增大,也容易出现数据运算问题。因此,最好对每个变量都进行显式声明,79,为了避免使用隐性声明方法,我们可以在应用程序的模块声明部分,加入Option Explicit语句,使VB的变量在使用前必须进行强制声明,否则就无法编译执行,80,3.4.2 基本数据类型,81,实例,Private Sub Command1_Click() Di

30、m MyInteger As Integer 声明一个整型变量 Dim MyString As String 声明一个变长的字符型变量 Dim MyString As String*10 声明一个长度固定的字符型变量 Dim MyBoolean As Boolean 声明一个布尔变量 Dim MyVariant As Variant 声明一个变体型变量 End Sub,82,Private Sub Command1_Click() Dim MyText As New TextBox 声明一个类型为文本框的变量 Set MyText = Text1 将控件Text1的值赋给对象变量MyText

31、MyText.Caption = 你好! 改变对象变量MyText的标题 End Sub,83,Private Sub Command1_Click() Dim MyObject As Control 声明控件变量 Set MyObject = Form1.Text1 将Form1的Text1控件赋给对象变量 MyObject.Text = 你好! 改变对象变量的标题 Set MyObject = Form1.Command1 MyObject.Caption = 确定 End Sub,84,3.4.3 变量初始值,数值型变量的初始值为0 字符串变量初始值为空字符串,即“”,变体型变量初始值为

32、空值,即Null值 布尔型的初值为假,即False。 当空值的变体变量在表达式中参加运算时,系统会根据实际情况将其解释为0或空字符串,85,3.4.4 变量的作用域,变量的作用域是从空间角度去分析变量属性的。它规定了变量在应用程序中的使用范围,即在什么范围内是可见的(Visible)、有效的(Enabled,86,1过程级变量 过程级变量是指在过程内部声明的变量。只有在该过程中的代码才能访问这个变量,不能用于程序的其他部分,建议使用Dim关键字来声明,87,2窗体级和模块级变量 窗体级变量是指在窗体或模块的代码声明段用Dim或Private声明的变量,其作用范围是整个模块或窗体。即在窗体或模块

33、中的所有过程中,都可以共同使用这些变量,当离开了这个模块或窗体,此变量就不起作用了。为了增加可读性,建议使用Private关键字声明,88,89,3全局变量 全局变量在整个应用程序中有效,一般在模块代码编辑器的顶部使用Public声明,90,3.4.5 变量的生命周期,所谓变量的生命周期,是指能够保存变量值的时间。如果说变量的作用域是从空间角度来看待变量的,那么生命周期则是从变量存在的时间上来理解的,91,1过程级变量 用Dim声明的过程级变量,只有在过程执行期才存在。当过程执行结束时(End Sub),这些变量的值也将从内存中释放。 直到下一次调用该过程时,才重新给该变量分配一个储存空间,重

34、新赋值,开始一个新的生命周期,92,但当使用Static关键字来声明局部变量时,则该变量的生命周期是应用程序的整个运行期,即在该过程执行结束时,系统并不释放该变量的内存空间,继续保留其值。语法结构是: Static 变量名 As 数据类型,93,2模块级、窗体级和全局变量 这些变量的生命周期是程序的运行期,不必使用Static关键字进行声明 以两个窗体的调用进行演示,94,Form2中定义一个窗体级变量j Form2的Load事件中:j=j+1,95,3.4.6 常量,Public Const PI As Double = 3.1415926 在应用程序的任何地方出现的表达式I=Pi * 25

35、,等价于I=3.1415926 * 25,96,3.4.7 运算符和表达式,VB中有四种类型的运算符 算术运算符 字符串连接符 关系运算符 逻辑运行符,97,1算术运算符,VB中主要有8个算术运算符,按优先级别的高低顺序分别是: (1)指数运算符:。 (2)取负:-。 (3)乘法*、除法/ (4)整除: (5)取模(取余):Mod (6)加+、减,98,2关系运算符,VB中有6种关系运算符 大于()、小于(或=)、小于等于(=)。 它们的优先级相同,按自左向右顺序运算,即用于对字符串或数值型数据的比较分析,99,3逻辑运算符,VB提供了以下6个逻辑运算符,按优先顺序排列如下 : (1)逻辑非:

36、Not (2)逻辑与 And (3)逻辑或 or (4)逻辑异或:Xor (5)等价:Eqv (6)蕴含:Imp,100,4字符串连接符,主要有+和&两个符号,它们的运算结果基本相同,101,3.4.8 常用函数,1数值型函数 绝对值函数(Abs) 平方根函数(Sqr) 幂指函数(Exp) 十六进制函数(Hex) 八进制函数(Oct) 取整函数(Fix) 四舍五入函数(Cint) 最大整数函数(Int) 随机数函数Rnd 以及Sin、Cos、Tan、Atn等三角函数,102,2字符串函数,1)Len(x)返回x代表的字符串的长度。 (2)Trim(x)去掉字符串x前面的空格。 (3)Left(

37、x,n)返回字符串x从左边算起n个长度的字符序列。 (4)Right(x,n)返回字符串x从右向左的n个字符序列。 (5)Mid(x,n,m)返回字符串从左边第n个字符开始m个长度的字符序列。 (6)Str(x)将数值型数据x转化为字符串。这个函数的返回值总会在前头保留一个空格,因此多数情况下与Trim函数结合使用,去掉首部空格,103,7)Val(x)将数字字符串转化为数值型数据。 (8)Chr(x)返回数值x(0255)所对应的Ascii码。比如Chr(13)、Chr(10)分别表示回车、换行。 (9)Asc(x)返回字符串x首字符的Ascii码值。 (10)UCase(x)和Lcase(

38、x)分别返回大写和小写字符串,104,3日期函数,1)Date返回当前系统日期 (2)Time返回当前系统时间 (3)Year(x)返回x表示的日期中的年份。类似的还有Month、Day、WeekDay等,105,4格式化函数,以系统设置的长时间格式返回当前系统时间。MyStr = Format(Time, Long Time) 以系统设置的长日期格式返回当前系统日期。MyStr = Format(Date, Long Date) MyStr = Format(MyTime, “h:m:s”) 返回 “17:4:23”。 MyStr = Format(MyTime, hh:mm:ss AMPM

39、) 返回 05:04:23 PM。MyStr = Format(MyDate, dddd, mmm d yyyy) 返回 Wednesday, Jan 27 1993,106,MyStr = Format(5459.4, “#,#0。00”) 返回 “5,459.40”。 MyStr = Format(334。9, “#0。00”) 返回 “334.90”。 MyStr = Format(5, “0。00%”) 返回 “500.00%”。 MyStr = Format(HELLO, ) 返回 THIS IS IT,107,3.4.9 流程控制语句,1顺序结构 2选择结构 3 循环结构,108,

40、选择结构,1)IfThenElse语句 (2)多重分支语句(Select Case,109,循环结构,ForNext循环语句 DoLoop语句 Do While 条件 Loop Do Loop While 条件 Do Loop Until 条件,110,3.5工程化思想及编程风格,1命名规则,111,112,2编程风格,1)注释: Rem或 (2)多重语句 (3)长语句的分行 (4)语句缩进,113,总之,人们常说“条条大路通罗马”,利用VB编写应用程序,解决同一个问题,会有多种方法和途径,那么到底哪种是最好的呢?简单地说,体现了工程化思想,有章法的才是较好的。 刘世峰,114,本章习题,一、

41、单项选择题 1与Load Form2等效的语句是() AForm2.Load BForm2.Visible=False CForm2.Show DForm2.Visible=True 2.可通过设置一普通窗体的何种属性,将它转变成MDI子窗体() AMDIChild=True BWindowState=Normal CMDIChild=False DWindowState=Maximized 3.可通过何种属性判断List列表控件的项目总数目() AListIndex BListText CListCount DListItem,115,4.如果未选定项目,那么ComboBox组合框控件的Li

42、stIndex属性值是() A0 B1 C-1 D随机数 5Dim I As Integer,则运行时变量I的初始值是() A0 B1 C-1 D空值 6执行语句a=5 Mod 2,则a的值是() A0 B1 C2 D2.5,116,7执行语句a=52,b=5/2,则a、b的值分别是() A2、2.5 B1、2 C2.5、2 D1、2.5 8如果仅需要得到当前系统时间,则可以使用哪个函数() ATime BYear CNow DDate 9Left(“abcd”,2)函数的返回值是() Aab Bbcd Ccd Dbc 10VB中下列逻辑表达式书写正确的是() Aabc Bab and ac

43、Cab Da122,117,作业,1弹出式菜单设计,运行结果如图1所示,118,2考试系统程序。利用单选框表示试题选项,框架控件进行分组,MsgBox提示选择结果,运行结果如图2、图3所示。,119,120,3数制转换程序。在窗体上添加两个文本框控件,在第一个文本框中输入数字,第二个文本框自动显示该数字的十六进制数。利用文本框控件的Change事件和Hex函数完成程序设计。运行结果如图4所示,121,4时钟程序。利用Now、Time、Year、Month和Day等时钟函数和Timer控件开发,可显示当前系统的年、月、日和时间,其中Timer控件的Interval属性为1000,每秒钟执行一次。

44、运行结果如图5所示,122,5排序程序。本程序主要练习列表框和循环语句的用法,利用文本框、列表框以及循环语句开发“冒泡”排序程序,运行结果如图6所示。程序的基本逻辑是: (1)在文本框Text1中输入一个数字,然后点击“添加”按钮,使用列表框控件的AddItem方法,将该数字添加到列表框控件List1中。依此添加若干数字。 (2)点击“排序”按钮,通过循环结构对List1控件中的项目进行排序,将结果添加到List2中,123,124,本讲结束,125,第二单元 界面代码设计与语言技巧: 第三章:应用程序接口设计及代码编写 学习目标:通过实例分析完成可视化界面设计、掌握变量与常量的概念及用法;学

45、会对运算符及流程控制语句和常用函数的使用,系统地掌握VB编程的一般方法及相关知识。 重点内容:1、可视化界面设计、变量和常量的 使用; 2、运算符及流程控制语句的使用; 3、常用函数的使用。 难点内容:多窗体设计、通用对话框控件的使用,126,一、创建一个简单计算器应用程序 界面P52图3.1,创建工程-窗体Form1,属性Caption设置为计算器;4个文本框(TextBox): TextResult(显示结果文本框) TextFirst(显示第一个数字文本框) TextLabel(显示运行符文本框) TextSecond(显示第二个数字文本框);二个框架(Fram)属性Caption分别为

46、数字区、功能区;在数字区内建11个命令按钮,属性Caption分别为7、8、9、4、5、6、1、2、3、0、+/- ;在功能区内建6个命令按钮属性Caption分别为加、减、乘、除、计算结果、清空;最后一个命令按钮属性Caption为退出;设计菜单(图3.4)。 进入程序,127,编写代码如下: 1、窗体的Load事件 Private Sub Form-Load () TextFirst.Text = “” TextSecond.Tex = “” TextLabel.Text = “” End Sub,128,2 、数字区的命令按钮的Click事件 (1)、数字“0”按钮 Private Su

47、b Command1- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “0” Else TextSecond.Tex = TextSecond.Tex + “0” End if End Sub,129,2)、数字“1”按钮 Private Sub Command3- Click () If TextLabel.Text = “” Then TextFirst.Text=TextFirst.Text + “1” Else TextSecond.Tex=TextSecond.Tex + “1” End

48、if End Sub,130,3)、数字“2”按钮 Private Sub Command4- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “2” Else TextSecond.Tex = TextSecond.Tex + “2” End if End Sub,131,4)、数字“3”按钮 Private Sub Command5- Click () If TextLabel.Text = “” Then TextFirst.Text=TextFirst.Text + “3” Else Text

49、Second.Tex=TextSecond.Tex + “3” End if End Sub,132,5)、数字“4”按钮 Private Sub Command6- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “4” Else TextSecond.Tex = TextSecond.Tex + “4” End if End Sub,133,6)、数字“5”按钮 Private Sub Command7- Click () If TextLabel.Text = “” Then TextFirst

50、.Text = TextFirst.Text + “5” Else TextSecond.Tex = TextSecond.Tex + “5” End if End Sub,134,7)、数字“6”按钮 Private Sub Command8- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “6” Else TextSecond.Tex = TextSecond.Tex + “6” End if End Sub,135,8)、数字“7”按钮 Private Sub Command9- Click

51、() If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “7” Else TextSecond.Tex = TextSecond.Tex + “7” End if End Sub,136,9)、数字“8”按钮 Private Sub Command10- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “8” Else TextSecond.Tex = TextSecond.Tex + “8” End if End Sub,13

52、7,10)、数字“9”按钮 Private Sub Command11- Click () If TextLabel.Text = “” Then TextFirst.Text = TextFirst.Text + “9” Else TextSecond.Tex = TextSecond.Tex + “9” End if End Sub,138,3、TextFirst文本框的Change事件 Private Sub TextFirst-Change () TextResult.Text = TextFirst.Text End Sub 4、TextSecond文本框的Change事件 Priv

53、ate Sub TextSecond-Change () TextResult.Text = TextSecond End Sub,139,5、正负号(+/-)命令按钮的Change事件 Private Sub Command2- Click () If TextLabel.Text = “” Then TextFirst.Text=-1* Val(TextFirst.Text) Else TextSecond.Text=1*val(TextSecond.Text) End if End Sub,140,6、加、减、乘、除命令按钮的Click 事件 Private Sub Command12-

54、 Click() TextLabel.Text = “加” End Sub Private Sub Command13- Click() TextLabel.Text = “减” End Sub Private Sub Command14- Click() TextLabel.Text = “乘” End Sub Private Sub Command15- Click() TextLabel.Text = “除” End Sub,141,7、计算结果命令按钮的Click 事件 Private Sub Command16- Click () Dim MyResult As Double Sel

55、ect Case TextLabel.Text Case “加” MyResult=Val(TextFirst.Text)+ Val(TextSecond.Text) Case “减” MyResult=Val(TextFirst.Text)- Val(TextSecond.Text) Case “乘” MyResult=Val(TextFirst.Text)* Val(TextSecond.Text,142,Case “除” MyResult=Val(TextFirst.Text) / Val(TextSecond.Text) End Select TextLabel.Text = “” TextSecond.Text = “” TextResult.Text = MyResult TextFirst.Text = TextResult.Text End Sub,143,8、清空命令按钮的Click 事件 Private Sub Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论