应用程序接口设计及代码编写_第1页
应用程序接口设计及代码编写_第2页
应用程序接口设计及代码编写_第3页
应用程序接口设计及代码编写_第4页
应用程序接口设计及代码编写_第5页
已阅读5页,还剩234页未读 继续免费阅读

下载本文档

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

文档简介

应用程序接口设计及代码编写3.1简单的计算器应用程序设计任务2.1.1任务描述仿照Windows操作系统自带的计算器程序,设计一个计算器,完成加、减、乘、除四则运算。运行界面如图所示。2主要执行逻辑1.输入第一个数字。当单击数字区的数字时,文本框中将显示相应的数字,并能进行正负数变换。2.输入四则运算符。当第一个数字输入完成后,可单击功能区的加、减、乘、除四则运算符。3.输入第二个数字。当单击了某个运算符后,再单击数字区的数字时,文本框中将显示第二个数字。3主要执行逻辑4.进行计算。上述三步完成后,单击“计算结果”按钮,将在文本框中显示四则运算的结果。5.重复计算。可在第四步的基础上,返回到第2步继续进行四则运算,或者单击“清空”按钮并返回第1步,开始新的四则运算过程。6.菜单操作。当单击“帮助”中的“关于”菜单项时,弹出“帮助”窗体。7.退出系统。单击“退出”按钮结束程序。43.1.2界面布局53.1.3界面设计创建一个“标准EXE”工程。1.设置窗体属性Caption——”计算器“MaxButton——False2.框架控件Caption——分别为“数字区”和“功能区”3.放置命令按钮64.放置文本框按钮txtResult——显示四则运算结果。txtFirst——存储四则运算的第一个数字。txtSecond——存储四则运算的第二个数字。txtLabel——存储四则运算符。txtFirst、txtSecond、txtLabel文本框的Visible属性设置为False。75.设计菜单在VB集成环境中通过“工具—菜单编辑器”打开“菜单编辑器”。83.1.4代码设计窗体的Load事件PrivateSubForm_Load()txtFirst.Text=""txtSecond.Text=""txtLabel.Text="“txtResult.Text=""EndSub93.1.4代码设计(1)数字“0”按钮PrivateSubCommand1_Click()'每单击一一下该按钮,就在文本框的尾部加字符“0”'如果txtLabel为空,则说明现在正在输入的是第一个数字‘否则表示输入的是第二个数字IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"0"ElsetxtSecond.Text=txtSecond.Text+"0"EndIfEndSub103.1.4代码设计(2)数字“1”按钮PrivateSubCommand3_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"1"ElsetxtSecond.Text=txtSecond.Text+"1"EndIfEndSub113.1.4代码设计(3)数字“2”按钮PrivateSubCommand4_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"2"ElsetxtSecond.Text=txtSecond.Text+"2"EndIfEndSub123.1.4代码设计(4)数字“3”按钮PrivateSubCommand5_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"3"ElsetxtSecond.Text=txtSecond.Text+"3"EndIfEndSub133.1.4代码设计(5)数字“4”按钮PrivateSubCommand6_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"4"ElsetxtSecond.Text=txtSecond.Text+"4"EndIfEndSub143.1.4代码设计(6)数字“5”按钮PrivateSubCommand7_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"5"ElsetxtSecond.Text=txtSecond.Text+"5"EndIfEndSub153.1.4代码设计(7)数字“6”按钮PrivateSubCommand8_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"6"ElsetxtSecond.Text=txtSecond.Text+"6"EndIfEndSub163.1.4代码设计(8)数字“7”按钮PrivateSubCommand9_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"7"ElsetxtSecond.Text=txtSecond.Text+"7"EndIfEndSub173.1.4代码设计(9)数字“8”按钮PrivateSubCommand10_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"8"ElsetxtSecond.Text=txtSecond.Text+"8"EndIfEndSub183.1.4代码设计(10)数字“9”按钮PrivateSubCommand11_Click()IftxtLabel.Text=""ThentxtFirst.Text=txtFirst.Text+"9"ElsetxtSecond.Text=txtSecond.Text+"9"EndIfEndSub193.1.4代码设计3.txtFirst文本框的Change事件'txtFirst文本框的Change事件PrivateSubtxtFirst_Change()'每当txtFirst的内容发生变化时,将变化结果随时映射到txtResulttxtResult.Text=txtFirst.TextEndSub203.1.4代码设计txtSecond文本框的Change事件PrivateSubtxtSecond_Change()'每当txtSecond的内容发生变化时,将变化结果随时映射到txtResulttxtResult.Text=txtSecond.TextEndSub

213.1.4代码设计4.正符号(±)命令按钮的Click事件PrivateSubCommand2_Click()'如果txtLabel为空,则说明现在正在输入的是第一个数字'否则表示当前正这输入的是第二个数字'转换语句的主要含义是:首先用Val函数将txtFirst.Text转换为数字'然后再乘以-1IftxtLabel.Text=""ThentxtFirst.Text=-1*Val(txtFirst.Text)ElsetxtSecond.Text=-1*Val(txtSecond.Text)EndIfEndSub223.1.4代码设计5.“+”、”-”、”×”、”÷”命令按钮的Click事件'“+”命令按钮的Click事件PrivateSubCommand15_Click()txtLabel.Text="+"EndSub'“-”命令按钮的Click事件PrivateSubCommand16_Click()txtLabel.Text="-"EndSub233.1.4代码设计5.“+”、”-”、”×”、”÷”命令按钮的Click事件'“×”命令按钮的Click事件PrivateSubCommand12_Click()txtLabel.Text="×"EndSub'“÷”命令按钮的Click事件PrivateSubCommand13_Click()txtLabel.Text="÷"EndSub246.“计算结果”(即“=”号)命令按钮的Click事件PrivateSubCommand17_Click()'定义一个Double类型的变量DimMyResultAsDouble'以txtLable.Text的值为多重分支条件SelectCasetxtLabel.TextCase"+"'当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(txtFirst.Text)/Val(txtSecond.Text)EndSelecttxtResult.Text=MyResult'显示计算结果EndSub253.1.4代码设计7.”清空“命令按钮的Click事件'如果四则运算完成,希望进行另一表达式的四则运算'则单击此按钮PrivateSubCommand14_Click()txtFirst.Text=""txtLabel.Text=""txtSecond.Text=""txtResult.Text=""EndSub263.1.4代码设计8.”帮助“菜单的调用'事先通过VB集成开发环境”工程-添加窗体“菜单'使用”关于“对话框模板创建一个关于窗体(名为frmAbout)'然后完成计算机应用程序的”帮助-关于”子菜单的Click事件代码PrivateSubAbout_Click()frmAbout.Show1EndSub9.退出命令按钮的Click事件PrivateSubCommand18_Click()EndEndSub273.1.5计算机应用程序分析上述计算器应用程序的特点:(1)在界面设计方面,用到的控件种类、数量多,窗体的设计精细了许多,应用程序有两个窗体。(2)控件间的联系比较密切,比如数字区按钮的Click事件,会影响txtFirst和txtSecond文本框的Text属性值,而txtFirst控件的属性会进一步影响txtResult。(3)程序代码的结果开始有点复杂,比如用到了IF……THEN之类的条件判断结构。283.2可视化界面设计基础3.2.1可视化界面设计概述VB可视化程序设计包括两部分内容:用户界面设计编写程序代码界面是应用程序最重要的组成部分。一个好的应用程序应具有友好的用户接口界面。而窗体是应用程序的对外接口,是其它控件的载体和容器。29VB应用程序的窗体有三种:单窗体:一个应用程序只包含一个窗体。多窗体:一个应用程序包含多个窗体。MDI窗体:是一种特殊的多窗体界面。有一个父窗体和众多的子窗体构成。30设计美观的窗体界面的一些基本原则:窗体的颜色不要过多,否则不易读。如果要设计多彩色的窗体界面,那么应当尽量同一色系的颜色,比如蓝、淡蓝等。不要试图在一个窗体上放置过多的信息。尽可能以清晰简明的方式设计窗体。使用适当的颜色、图片来增加窗体的趣味是必要的,但要适度。界面元素应尽可能一致,只选择最适合特定应用程序的控件。31习题P94二、2.

是应用程序的对外窗口,是其它控件和载体的容器。答案:窗体323.2.2多窗体设计当应用程序的功能比较复杂时,就需要添加多个窗体来实现程序功能。这就是多窗体设计。1.添加窗体一般通过“工程-添加窗体”菜单完成。332.设置启动窗体每个应用程序都有开始执行的入口。应用程序开始运行时首先出现的窗体称为启动窗体。在默认的情况下,创建的第一个窗体为启动窗体。如果想在应用程序启动时首先启动别的窗体,那么就得修改启动窗体的设置了。34利用“工程属性”对话框设置启动窗体35让程序首先执行一个子过程,通过该子过程加载显示窗体。Main子过程是标准模块中的一个子过程。可以通过“工程-添加模块”菜单创建一个标准模块,然后在其中输入代码。36习题P94二、3.每个应用程序都有开始执行的入口,在VB中这种窗体称为

。答案:启动窗体373.窗体的装载与卸载(1)Load语句Load语句用于把窗体或其它对象装入内存。当执行装载窗体命令时,应用程序首先把窗体属性设置为初始值,然后再触发Load事件。一旦窗体装载,不管它是否可见,它的属性及控件就可以被程序调用。当使用窗体的Show方法时,VB程序会自动装载窗体,然后才显示该窗体,此时隐含使用了Load语句。38习题P93一、1.与Load.Form2等效的语句是()A.Form2.LoadB.Form2.Visible=FalseC.Form2.ShowD.Form2.Visible=True答案:C393.窗体的装载与卸载(2)UnLoad语句该语句可以把窗体或其它对象从内存中卸载,在单窗体和多窗体应用程序中均会使用这条语句,并且在卸载窗体时将会触发UnLoad事件。对单窗体应用程序而言,以下语句是等效的:UnLoadForm1等效于End如果是在Form1上执行UnLoad语句,则可以直接写成:UnLoadMe40习题P94二、4.如果要将窗体对象从内存中卸载,可使用

语句。答案:Unload414.多窗体应用程序设计的一般步骤(1)添加应用程序所需要的窗体、模块。(2)设置起始窗体,以及多窗体间的调用关系。(3)按单窗体设计方法设计每个窗体。423.2.3MDI多文档窗体的设计多文档窗体(MDI)是可以同时进行多文档操作的界面。它运行同时运行多个文档,每个文档显示在自己的窗口中,用户可以随意在各个文档间进行切换。目前大多数软件都采用这种界面,比如MicrosoftWord。MDI界面由一个父窗体和多个子窗体组成。子窗体的活动范围只能限制在父窗体内。父窗体为应用程序中的所有子窗体提供操作空间,并负责管理各个子窗体的操作,是所有子窗体的容器。431.MDI父窗体一个VB工程中只能有一个MDI父窗体,创建的方法是:(1)打开或新建一个工程,单击“工程”菜单中的“添加MDI窗体”命令。(2)在弹出的“添加MDI窗体”对话框中双击“添加MDI窗体”图标。(3)这时就会出现一个默认名称为MDIForm1的新窗体。444546472.MDI子窗体父窗体创建完成以后,我们可以通过“工程”菜单添加若干标准窗体,然后将这些窗体的MDIChild属性设置为True,该窗体就成为工程中的子窗体了。子窗体和一般窗体看起来没有什么两样,但运行时子窗体被包含在父窗体中。无论如何拖动子窗体,也无法使它们摆脱父窗体的束缚,即MDI父窗体是所有子窗体的容器。48习题P93一、2.可通过设置一普通窗体的何种属性,将它变换为MDI子窗体?()A.MDIChile=TrueB.WindowsState=NormalC.MDIChile=FalseD.WindowsState=Maximizel答案:A493.MDI子窗体的显示方法——静态显示方法和动态显示方法(1)静态显示方法静态显示方法是通过在设计应用程序时添加多个窗体来完成的。假设程序中允许用户在父窗体上同时打开三个窗体,那么设计时只要添加三个子窗体,在MDI父窗体中通过Show命令显示即可。50(2)动态显示方法动态显示方法不象静态显示方法那样在设计时就添加一大堆窗体,它只需要设计一个子窗体,比如Form1,然后通过以下步骤就利用实现多窗体显示。DimMyNewFormAsNewForm1MyNewForm.Show514.MDI界面实例创建一个MDIForm1父窗体和一个子窗体。在Form1子窗体上放置一个Label标签并将其Caption属性设置为“子窗体”。在父窗体上设计“新建”和“排列”两个菜单项,在它们的Click事件中分别加入如下代码:PrivateSubm1_Click()'当单击“新建”菜单时执行下列语句DimMyNewFormAsNewForm1MyNewForm.ShowEndSubPrivateSubm2_Click()‘对子窗体进行排列,排列参数如表所示(P62)MDIForm1.Arrange0EndSub52程序运行结果533.2.4窗体的运行方式1.模态和非模态显示窗体模态窗体占用整个应用程序的控制。在模态窗体显示状态下,只有关闭该窗体,用户才能与其它窗体进行交互,继续操作应用程序的其它部分。通常显示重要信息的窗体都是以模态方式显示的,比如计算器应用程序中采用下列方式显示frmAbout窗体:frmAbout.Show1或frmAbout.ShowvbModal543.2.4窗体的运行方式1.模态和非模态显示窗体非模态窗体也称常态窗体,用户在跟此窗体进行交互时,还可以切换到其它窗体。一般情况下应用程序运行的第一个窗体(主窗体)就是以非模态方式显示的。比如:Form2.Show或Form2.Show0Form2.ShowvbModaless553.2.4窗体的运行方式1.模态和非模态显示窗体说明两种显示方式主要区别的例子:(1)非模态显示窗体的例子新建一个“标准EXE”工程,在其中添加一个Form2新窗体。在Form1窗体是放置一命令按钮,并编写以下代码:PrivateSubCommand1_Click()Form2.ShowMsgBox"你打开了Form2窗体!"EndSub运行程序,单击命令按钮,Form2和MsgBox几乎同时出现,这是因为出现在执行了Form2.Show语句后,马上执行下一条MsgBox语句。(演示)563.2.4窗体的运行方式1.模态和非模态显示窗体说明两种显示方式主要区别的例子:(2)模态显示窗体的例子在上例窗体显示语句修改为Form2.Show1,其它设置个操作过程不变,即PrivateSubCommand1_Click()Form2.Show1MsgBox"你打开了Form2窗体!"EndSub你会发现,必须关闭了Form2窗体后,MsgBox对话框才出现。这是因为程序在执行了Form2.Show1语句后,将停止不动的缘故。(演示)573.2.4窗体的运行方式2.最前端显示窗体我们经常会遇到一些窗体需要永远显示在所有窗体之上(TopMost),这种显示方式称为最前端显示,一般可通过Windows的SetWindowsPos来实现这一功能。(见第4章)58习题P94二、5.模态方式显示Form1窗体对象的语句是

。答案:Form1.Show1或Form1.ShowvbModal593.2.4窗体的运行方式3.ToolWindow窗体集成环境中的工具窗口就是一种典型的ToolWindow窗体。可以通过API函数设计这类窗体,但最简单的方法是将窗体的BordeStyle属性设置为3或4。60习题P94二、1.VB应用程序可分为单窗体、多窗体和

。答案:MDI多文档窗体613.3可视化界面高级设计除了命令按钮、文本框、标签控件外,我们在计算器应用程序中还使用了菜单技术和框架。这些对象的使用使得应用程序更加美观,更便于用户操作。623.3.1菜单设计1.菜单的基本属性和事件在VB应用程序中,菜单是一个控件,与其它控件一样,它具有定义其外观和行为的属性,在设计或运行时可以进行设置或调用。菜单主要有标题(Caption)、名称(Name)、有效(Enabled)、可见(Visible)、复选(Check)和快捷键(ShortCut)等属性。菜单控件只包含一个事件,即Click事件,当用户用鼠标或键盘选中菜单控件时,将调用该事件。633.3.1菜单设计2.下拉菜单的基本创建方法菜单控件不在工具箱中出现,而需要通过“工具”菜单项打开菜单编辑器完成菜单设计。基本步骤:(1)新建一个窗体,利用菜单编辑器设计各菜单项;(2)利用代码编辑器窗口编写每一个菜单项的Click事件过程。643.3.1菜单设计3.设置分隔条的方法分隔条是一种特殊的菜单项,它的标题(Caption)属性为减号,即“-”。653.3.1菜单设计4.设置访问键和快捷键的方法通过设置访问键和快捷键可以使用户通过键盘访问菜单。访问键,一般在标题中,通过“&”符号和相应的字母设置,此字母的下方会出现一下划线。用户可以通过Alt+字母来选择此项。快捷键:快捷键将显示在菜单项标题的右边,可以大大提高选择菜单命令的速度,可通过菜单编辑器进行设置。663.3.1菜单设计5.弹出式菜单的创建方法弹出式菜单是一种独立于菜单栏而显示在窗体上的浮动式菜单,在可视化菜单中经常出现,有时也称为快捷菜单。创建方法是:(1)首先利用菜单编辑器建立菜单,方法与前面介绍的下拉式菜单创建方法一样。(2)利用窗体的PopupMenu方法显示弹出式菜单。673.3.1菜单设计6.菜单创建实例新建一个工程,使用菜单编辑器创建一个下拉式菜单。菜单标题菜单名称菜单级别文件(&F)MnuFile主菜单项新建(&N)mnuNew子菜单项打开(&O)mnuOpen子菜单项-mnuSep子菜单项退出mnuExit子菜单项683.3.1菜单设计6.菜单创建实例(2)编写代码PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)'如果单击的是鼠标右键,则弹出mnuFile菜单IfButton=2ThenPopupMenumnuFileEndIfEndSub6970弹出式菜单的运行结果713.3.1菜单设计6.菜单创建实例(3)如果只希望窗体界面上出现弹出式菜单,而不希望它同时显示下拉式菜单,可以在设计阶段,通过菜单编辑器取消mnuFile的可见设置,或者在Form1的Load事件中加入如下代码:mnuFile.Visible=False72习题P94二、6.VB中可以使用

命令显示弹出式菜单。答案:PopupMenu73习题P94四、1.弹出式菜单设计,运行结果如图1所示。74设计过程:新建工程,创建一个标签,其Caption属性为“右击窗体则弹出快速菜单:”。然后通过“工具-菜单编辑器”创建弹出式菜单:菜单标题菜单名称快捷键可见弹出菜单PopMenu新建mnuNewCtr+N√打开mnuOpenCtr+O√保存mnuSaveCtr+S√—mnuSep√关闭mnuClose√75代码设计:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuPopMenuEndIfEndSub(演示)763.3.2框架、单选钮和复选框控件1.框架控件窗体可以放置很多控件,为了将控件分成若干个组就需要采用框架(Frame)控件。框架控件一般作为其它控件的容器使用。可按功能将控件组合在框架内,一方面使界面简洁清晰,另一方面当框架移动时,其中的控件也一起移动,以提高界面设计的效率。框架控件的主要属性是Caption,用于指明框架的标题。(演示)772.单选钮和复选框(1)单选钮(OptionButton),如果希望用户在几个选项中只能选一个,就要使用单选钮。它的主要属性值是Value。当Value属性设置为True时,表示该选项被选中。在运行状态,当用户用鼠标单击该控件时,该控件中出现一个圆黑点(表示被选中),其Value值被自动设置为True。这时这一组中其它的单选钮就会被自动取消选择。78(2)复选框(CheckBox)如果希望用户在几个选项中可选择多项,就可使用复选框控件。它的主要属性也是Value(0:未被选中;1:选中;2:禁用复选框)。在运行状态,可用鼠标的单击操作,切换复选框的状态。79框架、单选钮和复选框的用法80习题P94四、2.考试系统程序。利用单选框表示试题选项。MsgBox提示选择结果,运行结果图2、图3所示。81图2.考试系统主界面82图3.信息提示83代码设计:DimFlag1,Flag2AsStringPrivateSubForm_Load()Option1(1).Value=FalseOption1(2).Value=FalseOption1(3).Value=FalseOption1(4).Value=FalseOption2(1).Value=FalseOption2(2).Value=FalseOption2(3).Value=FalseOption2(4).Value=FalseEndSub84代码设计:PrivateSubOption1_Click(IndexAsInteger)SelectCaseIndexCase1Flag1="A.Form2.Load"Case2Flag1="B.Form2.Visible=False"Case3Flag1="C.Form2.Show"Case4Flag1="D.Form2.Visible=True"EndSelectEndSub85代码设计:PrivateSubOption2_Click(IndexAsInteger)SelectCaseIndexCase1Flag2="A.0"Case2Flag2="B.1"Case3Flag2="C.2"Case4Flag2="D.2.5"EndSelectEndSub86代码设计:PrivateSubCommand1_Click()MsgBox"你的选择是:"+Chr(13)_+Flag1+Chr(13)+Flag2EndSubPrivateSubCommand2_Click()EndEndSub(演示)873.3.3列表框控件如果我们希望用户仅仅通过鼠标选择,而不用使用键盘输入相关信息时,就需要使用列表框(ListBox)控件了。比如我们要开发一个学生档案管理系统,其中需要输入学生的专业信息,由于这类数据基本固定,因此为了减少用户的输入工作量,同时也为了使输入的数据规范化,就可以将专业信息事先“保存”在列表框控件里。88列表框控件的用法89对以上的用户界面加入以下代码,运行程序后,当单击列表框的某个选项时,上端的文本框将出现对应的信息。PrivateSubForm_Load()List1.AddItem"计算机应用专业"List1.AddItem"软件开发专业"List1.AddItem"电子商务专业"List1.AddItem"财务会计专业"List1.AddItem"通信控制专业"List1.AddItem"企业管理专业"List1.AddItem"工程管理专业"EndSubPrivateSubCommand1_Click()Text1.Text=List1.TextEndSub90列表框控件的常用属性、事件和方法1.List属性用来返回或设置控件的列表部分所包含的项目。List属性是一个字符串数组,数组的每一项都是一个列表项目。比如上例中,List(0)的值等于“计算机应用专业”,List(1)的值等于“软件开发专业”。List的属性值可以通过AddItem方法来添加,也可以直接设置,例如:List1.list(0)=“计算机应用专业”List1.list(1)=“软件开发专业”……91列表框控件的常用属性、事件和方法2.ListIndex属性用来返回或设置控件当前选定项目的索引。如果选中第一个项目,则属性值为0,第二个为1。依此类推。若未选定项目,则ListIndex的值为-1,在上例中,由于选中的是第一个项目,所以ListIndex的值为0。该属性往往与List属性结合起来使用,以便确定当前选定的项目文本,方法如下:List1.List(List.ListIndex)92列表框控件的常用属性、事件和方法3.Text属性用来返回当前选定项目的文本。List.Text的结果与List1.List(List.ListIndex)表达式结果完全相同。4.ListCount属性该属性返回列表框中项目总数目。在上例中,List.ListCount的值为7。5.AddItem方法该方法用来添加新项目,常用的语法是:List1.AddItem字符串93列表框控件的常用属性、事件和方法6.RemoveItem方法用来删除列表框中的项目,例如要删除列表框中的第一个项目,可以使用以下语句:List1.RemoveItem0或者List1.RemoveItem“计算机应用专业”7.Clear方法用来删除列表中的所有项目。8.Click事件最常用的是ListBox控件的Click和DbClick事件。94习题P93一、3.可通过何种属性判断List列表框项目总数目?()A.ListIndexB.ListTextC.ListCountD.ListItem答案:C95习题P94二、7.向List列表框控件添加新项目的方法是

。答案:AddItem演示形考册作业2.四.796形考册作业2.二.77.列表框中项目的序号是从

开始的。答案:097形考册作业2.四.22.输出100~200之间不能被3整除的数,要求用Do语句的一种形式实现,程序运行结果如图5所示。98程序代码:PrivateSubForm_Load()x=101Text1.Text="100"DoWhilex<=200IfxMod3<>0ThenText1.Text=Text1.Text+Chr(13)+Chr(10)+Trim(Str(x))EndIfx=x+1LoopEndSub993.3.4组合框控件可以将组合框控件(ComboBox)控件理解为列表框控件和文本框控件的功能结合体。有了这个控件,用户既可以从列表框中选择项目,也可以在需要时输入项目。可以使用这个控件制作所需界面。100单击项目之前单击项目单击项目之后101添加项目代码:PrivateSubForm_Load()Combo1.AddItem"计算机应用专业"Combo1.AddItem"软件开发专业"Combo1.AddItem"电子商务专业"Combo1.AddItem"财务会计专业"Combo1.AddItem"通信控制专业"Combo1.AddItem"企业管理专业"Combo1.AddItem"工程管理专业"EndSub102组合框主要包括List,ListIndex,Text,ListCount属性和AddItem方法,其用法列表框控件相同。列表框还有一个重要属性是Style。

属性值样式0——vbComboDropDown下拉式组合框1——vbComboSimple简单组合框2——vbComboDropDownList下拉式列表框103(1)下拉式组合框在缺省设置(Style=0)下,组合框为下拉式。用户可直接输入文本,也可单击组合框右侧的附带箭头打开选项列表。选定某个选项后,将此此选项插入到组合框顶端的文本框中。104(2)简单组合框将组合框Style属性设置为1就指定一个简单的组合框。任何时候在其内部显示列表中所有选项。当选项超过可显示的限度时将自动插入垂直滚动条。用户既可输入文本,也可从列表中选择。105(3)下拉式列表框将组合框Style属性设置为2就指定一个简单的下拉式列表框合框。它显示项目的列表,用户必须从中选择。106习题P93一、4.如果未选定项目,那么ComboBox组合框控件的ListIndex属性值为()A.0B.1C.-1D.随机数答案:C107形考册作业2.二.33.组合框具有

两种控件的基本功能。答案:.文本框.列表框1083.3.5工具栏、状态栏和图标列表控件工具栏(ToolBar)、状态栏(StatusBar)并非是用户界面所必须的,但它可以使我们的界面更友好、更快捷。如果于图标列表控件(ImageList)一同使用,界面就会更加出色。1091.添加控件的方法当我们新建一个工程时,在工具箱中找不到工具栏、状态栏之类的控件,此时需要通过“工程-部件”菜单项进行添加。在部件对话框中选择“MicrosoftWindowscommonControl6.0”后单击“应用”按钮,就可以在工具箱中看到这些控件了。110VB最大的特色就是其丰富的控件库,有些是VB系统自带的,有些是第三方提供的。还有些可以是我们自己开发的。当需要使用这些控件时,我们可以通过部件选择对话框进行添加,同样也可以使用这种方法来删除已添加已添加的控件,只要将要删除的控件前的“√”去掉再单击“确定”按钮即可。1112.使用实例工具栏、状态栏、图标列表都是VB提供的控件,具有属性、方法和事件,这三种控件的属性都可以通过相应的属性设置窗进行设置,操作比较简单。下面通过实例介绍它们的用法。实例:设计一个用户界面,界面包括工具栏和状态栏,工具栏包括三个按钮(新建、打开、关闭),状态栏分两部分。当用户单击工具栏上的某个按钮时,在状态栏的第二部分显示相应的提示信息。112工具栏、状态栏设计效果113设计步骤:(1)添加控件。在窗体上放置工具栏、状态栏、图标列表控件,控件的缺省名称分别为ToolBar1,StatusBar1,ImageList1.首先要利用“工程—部件”菜单向工具箱添加应该添加有关工具。在部件对话矿中选择“MicrosoftWindowsCommonControls6.0”后单击“应用”按钮,就可以把这些控件添加到工具箱了。114利用部件对话框添加工具115添加工具后的工具箱116(2)设置ImageList控件在ImageList1控件上右击鼠标,选择属性窗口。将高度×宽度设置为16×16。117向图像框添加作为工具栏按钮的图像。118(3)设置ToolBar控件。在ToolBar1控件上右击鼠标,调出其属性页窗体。设置图像列表为ImageList1。119插入按钮,并设置每个按钮的标题,根据提示文本,以及所对应的图像编号。120(4)设置StatusBar控件。在StatusBar控件上右击鼠标,调出其属性页。在其中插入两个窗格,第一个窗格的文本设置为“提示”,第二个窗格自动调整大小属性设置为为1,其他设置不变。121(5)添加事件代码ToolBar的Click事件中加入以下代码。PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)'当用户单击工具栏上的按钮时,'在状态栏的第二个窗格显示北单击按钮的名称'参数Button表示当前被单击的按钮,其类型为按钮对象'状态栏的第二个窗格的值用Panels(2).Text表示StatusBar1.Panels(2)="你刚才单击的按钮是["+Button.Caption+"]"EndSub

[演示]122形考册作业2.一.1414.下列可以用来存储图像供其它对象使用的控件是()。A.ToolBarB.StatursBarC.ImageListD.TreeView答案:C123形考册作业2.一.1515.当单击工具栏上的按钮时,会触发的事件是()。A.ButtonClickB.ChangeC.LoadD.KeyPess答案:A1243.3.6通用对话框事件通用对话框控件包括打开(Open)、保存(Save)、颜色(Color)、字体(Font)、打印(Print)等对话框。这些对话框在各个应用程序中都是相似的。可使用户界面整齐美观。125将通用对话框加到工具箱的方法:选择“工程-部件”,在部件对话框中选择“MicrosoftCommonDialogControl6.0”126示例:通用对话框的使用方法程序运行效果1271.“打开”对话框PrivateSubCommand1_Click()'设置对话框的标题CommonDialog1.DialogTitle="打开文件"'设置文件过滤器CommonDialog1.Filter="所有文件│*.*│文本文件│*.txt"'设置默认文件类型(2表示文本文件*.txt)CommonDialog1.FilterIndex=2'显示“打开”对话框CommonDialog1.ShowOpen'显示选择的文件名(全路径名)MsgBox"你过程选择的文件名是:"+CommonDialog1.FileNameEndSub1282.“另存为”对话框PrivateSubCommand2_Click()'设置对话框的标题CommonDialog1.DialogTitle="另存为"'设置文件过滤器CommonDialog1.Filter="所有文件│*.*│文本文件│*.txt"'设置默认文件类型(2表示外文件*.txt)CommonDialog1.FilterIndex=2'显示“另存为”对话框CommonDialog1.ShowSave'显示刚才输入的文件名(全路径名)MsgBox"你刚才输入的文件名是:"+CommonDialog1.FileNameEndSub1291.“颜色”对话框PrivateSubCommand3_Click()'设置颜色窗体的形状常用的有、2、4、8四个CommonDialog1.Flags=1'显示“颜色”对话框CommonDialog1.ShowColor'根据选择的颜色,改变文本框的前景色Text1.ForeColor=CommonDialog1.ColorEndSub[演示char3.3.6]130形考册作业2.一.16

16.要利用公共对话框控件来显示“打开文件”对话框,需要调用控件的(

)方法。A.ShowPrintB.ShowOpenC.LoadD.ShowColor答案:B131形考册作业2.二.2

2.通用对话框控件可显示的常用对话框有

答案:打开(Open)

保存(Save)

颜色(Color)

字体(Font)

打印(Print)1323.3.7其它常用控件

在设计用户界面时,还有许多常用控件。比如,当界面上的控件太多时,可以使用TabStrip控件将它们分组;当需要显示安装进度、程序执行进度时,可以使用ProgressBar控件;当希望制作类似于Windows资源管理器式的菜单时,可以使用TreeView控件。此外,水平滚动条(HScrollBar)和垂直滚动条控件(VScrollBar)控件也常常用到。133但是无论控件有多少,它们的原理都是相同的,都是一些属性、事件和方法的封装体。因此,重要的不是学习多少控件(实际上也是学不完的),而是理解VB可视化界面设计的思想,只有这样才能具有良好的自学能力。另外,任何一个应用程序都不可能用到所有的控件,在一个应用程序中使用过多种类的控件并非好习惯,任何时候都要记住:简洁才是最美观的。1343.4代码设计基础VB是基于面向对象思想的编程语言,应用程序界面是由一系列控件搭建而成的,而VB的代码就像一条线,将这些图形界面元素串起来,从而可以使窗体、控件通过事件驱动机制连接为一个有机的整体。代码设计是一个重要工作,它一般会涉及变量、运算符号、常用函数和流程控制结构等知识。1353.4.1变量的声明变量是程序运行期间其值可以变化的量。在程序设计中经常要用到变量,变量在使用前必须要先声明。声明变量就是事先将变量通知给程序,告诉编译器将要使用的变量,使编译器产生优化代码,进而提高运行速度。例如:DimMyResultAsDouble变量名数据类型1361.显式声明

上例是一种显式声明变量的方法,基本语法结构为:Dim变量名As数据类型其中变量名是一些有效的符号,需按照命名规则对变量命名。VB数据类型是指应用程序为了处理各种类型的数据,如整数、字符等,以便提高存储和处理各类数据类型的效率而引入的概念,比如Integer整型、String字符型。1372.隐式声明有时为了简化程序的书写,VB允许在使用变量前不使用Dim语句进行事先定义,而由VB自动将变量声明为变体型(Variant类型),这种方式称为隐式声明。隐式声明方法为书写程序提供了较多的灵活性,但也会降低程序的执行效率,特别是可读性差。当把一个变量声明为Variant时,这个变量可以用来存储各种数据,但会带来内存空间消耗的增大,并且容易出现数据运算问题。因此最好对每个变量都进行显式声明。138习题P94二、8.如果不能事先确定变量的数据类型,则可以把它声明为

类型。答案:变体(Variant)139习题P94二、9.一般可以使用

关键字声明变量。答案:Dim140形考册作业2.一.77.以下可以作为VisualBasic变量名的是()。A.SINB.COIC.COS(X)D.X(-1)答案:B1413.4.2基本数据类型数据类型数据名称所占字节有效值字节型Byte0~255布尔型Boolean2True或Folse整型Integer2-32768~32767长整型Long4单精度型Singer4双精度型Double8货币型Currency8日期型Date8对象型Object字符串长度变长字符串型String*NumNum可变类型Variant不定142几个变量声明的例子:PrivateSubCommand1_Click()DimMyIntegerAsInteger’声明一个整型变量DimMyStringAsString’声明一个变长的字符型变量DimMyStringAsString*10’声明一个长度固定的字符型变量DimMyBooleanAsBoolean’声明一个布尔变量DimMyVariantAsVariant’声明一个变体型变量EndSub143几个变量声明的例子:PrivateSubCommand1_Click()DimMyTextAsNewTextBox’声明一个类型为文本框的变量SetMyText=Text1’将控件Text1的值赋给对象变量MyTextMyText.Caption=“你好!”’改变对象变量MyTexr的标题EndSubPrivateSubCommand1_Click()DimMyObjectAsControl’声明控件变量SetMyObject=Form1.Text1’将Form1的Text1赋给对象变量MyObject.Text=“你好!’改变对象变量的标题SetMyObject=Form1.Command1MyObject.Caption=“确定”EndSub144形考册作业2二.1515.以下语句的输出结果是

。a%=3.14159Printa%

答案:3(因为变量a被声明为整型变量——%表示整型变量)145形考册作业2三.44.PrivateSubCommand1_Click()Dima,bAsIntegera=3.4b=3.4Text1.Text=aText2.Text=bEndSub答案:Text1显示3.4,Text2显示3。如右图所示。

1463.4.3变量初始值

任何变量在被声明后都会有一个初始值。一般情况下,数值型变量的初始值为0;字符串变量的初始值为空字符串,即"";变体型变量的初始值为空值,即Null值;布尔型的初始值为假,即Flase。当空值的变体变量在表达式中参加运算时,系统会根据实际情况将其解释为0或空字符串。147习题P93一、5.DimIAsInterger,则运行时变量的初始值是()A.0B.1C.-1D.空值答案:01483.4.4变量的作用域

变量的作用域是从空间的角度去分析变量属性的。它规定了变量在应用程序中的使用范围,即在什么范围内是可见的(Visible)、有效的(Enabled)。1491.过程级变量过程级变量是指在过程内部声明的变量。只有在该过程中的代码才能访问这个变量,该变量不能用于程序的其它部分,建议用Dim关键字来声明。1502.窗体级和模块级变量窗体级变量是指在窗体或模块的代码声明段用Dim或Private声明的变量。其作用范围是整个模块或窗体。即在窗体或模块的所有过程中,都可以使用这些变量,当离开这个窗体或模块时,此变量就不起作用了。为了增加可读性,建议使用Private关键字声明。例如:1513.全局变量

全局变量在整个应用程序中有效,一般在模块代码编辑器的顶部使用Public声明。1523.4.3变量的生命周期所谓变量的生命周期,是指能够保存变量值的时间。如果说变量的作用域是从空间角度来看待变量的,那么生命周期则是从变量存在的时间上来理解的。1531.过程级变量用Dim声明的过程级变量,只有在过程执行期才存在。当过程执行结束时(EndSub),这个变量的值也将从内存中释放。直到下一次调用该过程时,才重新给该变量分配一个存储空间,重新赋值,开始一个新的生命周期。但当使用Static关键字来声明局部变量时,该变量的生命周期是应用程序的整个运行期,即在该过程执行结束时,系统并不释放该变量的内存空间,而是继续保留其值。语法结构:Static变量名As数据类型1542.模块级、窗体级和全局变量

这些变量的生命周期是程序的运行期,不必使用Static关键字来声明。例如,新创建一个工程不在其中添加Form1(启动窗体)和Form2两个窗体。它们的调用关系及调用结果如图所示:155示例:新建一个工程,添加Form1(启动窗体)和Form2两个窗体。它们的调用关系和调用两次后的结果如图所示。156(1)Form1中的代码PrivateSubCommand1_Click()'以模态方法显示Form2窗体Form2.Show1EndSub(2)Form2中的代码PrivatejAsIntegerPrivateSubCommand1_Click()UnloadMeEndSubPrivateSubForm_Load()j=j+1Text1.Text=Str(j)EndSub[演示char3.4.5]157可见,即使Form2被卸载,变量j的值仍然保持不变。如果希望每次调用Form2窗体时,变量j均从初始值0开始,则应该在Form2的Load或Activate事件中加入j=0之类的赋值语句,进行变量初始化。在窗体的Load或Activate事件中变量初始化工作是一个好的编程习惯。158形考册作业2.一.11.按照变量的作用域可将变量划分为(

)。A.公有、私有、系统B.全局变量、模块级变量、过程级变量C.动态、常态、静态D.Public、Private、Protected答案:B159形考册作业2.一.2020.有如下程序段:Dimstr1AsString*5Str1=”VisualBasic”

当该程序段执行时,变量str1的之值是(

)A.”Visual”B.”Visua”C.”V”D.”VisualBasic”

答案:B160习题P94三、2.请简要说明一下变量的作用域和生命周期的含义。答:变量的作用域是从空间的角度去分析变量属性的。它规定了变量在应用程序中的使用范围,即在什么范围内是可见的(Visible)、有效的(Enabled)。所谓变量的生命周期,是指能够保存变量值的时间。如果说变量的作用域是从空间角度来看待变量的,那么生命周期则是从变量存在的时间上来理解的。1613.4.6常量常量是在程序运行过程中其值保持不变的量,通常可分为符号常量和文字常量两大类。定语常量的语法是:

[Public│PrivateConst变量名As数据类型[=表达式]其中Private为缺省选项,表达该常量只能在包含该声明的模块中使用。Public表达该常量可以在整个应用程序运行周期中使用。但要注意,在过程中是不能使用该选项的。例:PublicConstPiAsDouble=3.1415926I=Pi*251623.4.7运算符和表达式运算是对数据的一种操作,VB用一组特定的符号表示对数据的操作,这些符号称为运算符,它操作的对象称为操作数。操作数和运算符按一定的规则连接在一起成了表达式,任何一个合法的表达式都有唯一的一个结果。表达式中的运算符按一定的规则进行运算,即我们经常所说的“先乘除后加减”,这就是运算符的优先级别。VB中有算术运算符、字符运算符、关系运算符和逻辑运算符四种运算符。1631.算术运算符VB中有八种运算符,按优先级别的高低顺序分别是:(1)指数运算符:^(2)取负:-(3)乘法*、除法/(4)整除:\(5)取模(取余):Mod(6)加+、减-164在书写VB算术表达式时应注意:(1)可以用圆括弧()改变表达式的运算顺序,括弧内的运算符总是先被运算。(2)同级别的运算符在一起时,按自左向右顺序运算。(3)指数运算符与取负运算符在一起时,先取负。比如3^-2表示3的-2次方。(4)为了提高表达式的可读性,应尽可能用“()”标识出运算顺序。165习题P94一、6.执行语句a=5Mod3,则a的值是()。A.0B.1C.2D.2.5答案:C166习题P94一、7.执行语句a=5\3,b=5/2,则a、b的值分别是()。A.2、2.5B.1、2C.2.5、2D.1、2.5答案:D167形考册作业2.一.66.表达式6+10Mod4*2+1的值是()。A.9B.11C.1D.3答案:A1682.关系运算符关系运算符主要用于对两个运算量进行关系比较。所谓运算量可以是常量、变量或算术表达式、函数等。通过关系运算符将两个运算量连接起来形成关系表达式,关系表达式的值是逻辑值,只有真(True)和假(False)两个值。在相应的场合,VB把0解释为False,而任何非0的解释为True。169VB有六种关系运算符:大于(>)小于(<)等于(=)不等于(<>)大于等于(>=)小于等于(<=)它们的优先级是相同的,按自左向右运算,即用于对字符串或数字型数据进行比较。170关系运算符操作举例运算符(名称)适用操作数类型示例结果=(等于)全部1=1True>(大于)全部1>2False<(小于>)全部3<5True<>(不等于)全部“He”<>”She”True>=(大于等于)全部4>=4True<=(小于等于)全部“ab”<=“ac”True171当进行字符串比较时,其运算逻辑是:按自左至右的顺序,逐一比较两个字符串对应位置的ASCII码值,第一次遇到ASCII码值不同时,哪个值最大则哪个字符串就大。比如“abcd>”abCD”的值为True。关系表达式采用以下格式书写:运算量1关系运算符运算量2172习题P94一、10.VB中下列逻辑表达式书写是正确的()。A.a>b>cB.a>banda>cC.a≤bD.A≠2答案:B173形考册作业2.一.1111.“x是小于80的非负数”,用VB表达式表示正确的是()。A.0≤x<80B.0<=x<80C.0<=xAndx<80D.0<=xOrx<80答案:C174形考册作业2.二.1212.将下列各条件写成VisualBasic逻辑表达式。(1)

1≤x<12(2)

A+B≥C或a-c≤c(3)

a和b都为正数或同为负数答案:(1)1<=xandx<12(2)A+B>=Cora-c<=c(3)a>0andb>0ora<0andb<01753.逻辑运算符逻辑运算符用于进行逻辑判断,用它们将算术表达式、关系表达式、常量、变量、函数连接起来就形成了逻辑表达式。任何一个逻辑表达式均具有True或False值。VB提供了六个逻辑运算符,按优先顺序排列如下:(1)逻辑非:Not(2)逻辑与:And(3)逻辑或:Or(4)逻辑异或:Xor(5)等价:Eqv(6)隐含:Imp176

逻辑运算符使用说明运算符(名称)用法及说明Not(逻辑非)Nota若a为Ture,则结果为False,否则结果为TureAnd(逻辑与)aAndb仅当a与b同为Ture,结果为Ture,否则结果为FalseOr(逻辑或)AOrb仅当a与b同为False,结果为False,否则结果为TureXor(异或)AXorba,b不同时,结果为Ture,否则结果为FalseEqv(逻辑相等)AEqvba,b相同时,结果为Ture,否则结果为FalseImp(蕴涵)AImpb当且仅当a为Ture,同时b为False时,结果为False,否则结果为Ture177形考册作业2.二.13

13.设A=2,B=3,C=4,D=5。表达式NotA<=COr4*C=B^2AndB<>A+C的值为

。答案:False解题思路:FNotA<=COr4*C=B^2AndB<>A+CTFTFT1784.字符串连接符字符串是由两个双引号“”包括的字母和数字的组合体,字符串连接符的作用是将字符串常量、变量和函数连接起来,从而形成一个较大的字符串,主要要“+”和“&”两个符号,它们的运算结果基本相同。比如:“Abcd”+”1234”将得到一个新的字符串“abcd1234”。179习题P94二、10.执行赋值语句a=“1234”+“567“后,变量a的值为

。答案:"1234567"1803.4.8常用函数1.数值型函数函数名功能Abs求绝对值Atn反正切函数Cos余弦函数Exp求指数Fix取整数,对负数较大的Int取整数,对负数较小的Log求对数Rnd产生一个0~1间的随机数Sgn求数字符号Sin正弦函数Sqr求平方根Tan正切函数181例:PrivateSubCommand1_Click()DimvnfTextAsVariantText1.Text=Abs(-20)'返回20Text2.Text=Int(3.5)'返回3Text3.Text=Int(-3.5)'返回-4Text4.Text=Fix(3.5)'返回3Text5.Text=Fix(-3.5)'返回-3Text6.Text=CInt(3.5)'返回4Text7.Text=Rnd'返回[0,1]之间的随机数Text8.Text=Hex(128)'返回128的十六进制数EndSu182数值型函数学习183形考册作业2二.1111.将下列函数式子写成VisualBasic表达式。(1):

。(2):

。(3

温馨提示

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

评论

0/150

提交评论