1VisualBasic程序设计第3章应用程序接口设计及代码编写安徽.蚌埠广播电视大学23.1简单的计算器应用程序设计任务2.1.1任务描述仿照Windows操作系统自带的计算器程序,设计一个计算器,完成加、减、乘、除四则运算。运行界面如图所示。3主要执行逻辑1.输入第一个数字。当单击数字区的数字时,文本框中将显示相应的数字,并能进行正负数变换。2.输入四则运算符。当第一个数字输入完成后,可单击功能区的加、减、乘、除四则运算符。3.输入第二个数字。当单击了某个运算符后,再单击数字区的数字时,文本框中将显示第二个数字。4主要执行逻辑4.进行计算。上述三步完成后,单击“计算结果”按钮,将在文本框中显示四则运算的结果。5.重复计算。可在第四步的基础上,返回到第2步继续进行四则运算,或者单击“清空”按钮并返回第1步,开始新的四则运算过程。6.菜单操作。当单击“帮助”中的“关于”菜单项时,弹出“帮助”窗体。7.退出系统。单击“退出”按钮结束程序。53.1.2界面布局63.1.3界面设计创建一个“标准EXE”工程。1.设置窗体属性Caption——”计算器“MaxButton——False2.框架控件Caption——分别为“数字区”和“功能区”3.放置命令按钮74.放置文本框按钮txtResult——显示四则运算结果。txtFirst——存储四则运算的第一个数字。txtSecond——存储四则运算的第二个数字。txtLabel——存储四则运算符。txtFirst、txtSecond、txtLabel文本框的Visible属性设置为False。85.设计菜单在VB集成环境中通过“工具—菜单编辑器”打开“菜单编辑器”。93.1.4代码设计窗体的Load事件PrivateSubForm_Load()txtFirst.Text=txtSecond.Text=txtLabel.Text=“txtResult.Text=EndSub103.1.4代码设计(1)数字“0”按钮PrivateSubCommand1_Click()'每单击一一下该按钮,就在文本框的尾部加字符“0”'如果txtLabel为空,则说明现在正在输入的是第一个数字‘否则表示输入的是第二个数字IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+0ElsetxtSecond.Text=txtSecond.Text+0EndIfEndSub113.1.4代码设计(2)数字“1”按钮PrivateSubCommand3_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+1ElsetxtSecond.Text=txtSecond.Text+1EndIfEndSub123.1.4代码设计(3)数字“2”按钮PrivateSubCommand4_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+2ElsetxtSecond.Text=txtSecond.Text+2EndIfEndSub133.1.4代码设计(4)数字“3”按钮PrivateSubCommand5_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+3ElsetxtSecond.Text=txtSecond.Text+3EndIfEndSub143.1.4代码设计(5)数字“4”按钮PrivateSubCommand6_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+4ElsetxtSecond.Text=txtSecond.Text+4EndIfEndSub153.1.4代码设计(6)数字“5”按钮PrivateSubCommand7_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+5ElsetxtSecond.Text=txtSecond.Text+5EndIfEndSub163.1.4代码设计(7)数字“6”按钮PrivateSubCommand8_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+6ElsetxtSecond.Text=txtSecond.Text+6EndIfEndSub173.1.4代码设计(8)数字“7”按钮PrivateSubCommand9_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+7ElsetxtSecond.Text=txtSecond.Text+7EndIfEndSub183.1.4代码设计(9)数字“8”按钮PrivateSubCommand10_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+8ElsetxtSecond.Text=txtSecond.Text+8EndIfEndSub193.1.4代码设计(10)数字“9”按钮PrivateSubCommand11_Click()IftxtLabel.Text=ThentxtFirst.Text=txtFirst.Text+9ElsetxtSecond.Text=txtSecond.Text+9EndIfEndSub203.1.4代码设计3.txtFirst文本框的Change事件'txtFirst文本框的Change事件PrivateSubtxtFirst_Change()'每当txtFirst的内容发生变化时,将变化结果随时映射到txtResulttxtResult.Text=txtFirst.TextEndSub213.1.4代码设计txtSecond文本框的Change事件PrivateSubtxtSecond_Change()'每当txtSecond的内容发生变化时,将变化结果随时映射到txtResulttxtResult.Text=txtSecond.TextEndSub223.1.4代码设计4.正符号(±)命令按钮的Click事件PrivateSubCommand2_Click()'如果txtLabel为空,则说明现在正在输入的是第一个数字'否则表示当前正这输入的是第二个数字'转换语句的主要含义是:首先用Val函数将txtFirst.Text转换为数字'然后再乘以-1IftxtLabel.Text=ThentxtFirst.Text=-1*Val(txtFirst.Text)ElsetxtSecond.Text=-1*Val(txtSecond.Text)EndIfEndSub233.1.4代码设计5.“+”、”-”、”×”、”÷”命令按钮的Click事件'“+”命令按钮的Click事件PrivateSubCommand15_Click()txtLabel.Text=+EndSub'“-”命令按钮的Click事件PrivateSubCommand16_Click()txtLabel.Text=-EndSub243.1.4代码设计5.“+”、”-”、”×”、”÷”命令按钮的Click事件'“×”命令按钮的Click事件PrivateSubCommand12_Click()txtLabel.Text=×EndSub'“÷”命令按钮的Click事件PrivateSubCommand13_Click()txtLabel.Text=÷EndSub256.“计算结果”(即“=”号)命令按钮的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'显示计算结果EndSub263.1.4代码设计7.”清空“命令按钮的Click事件'如果四则运算完成,希望进行另一表达式的四则运算'则单击此按钮PrivateSubCommand14_Click()txtFirst.Text=txtLabel.Text=txtSecond.Text=txtResult.Text=EndSub273.1.4代码设计8.”帮助“菜单的调用'事先通过VB集成开发环境”工程-添加窗体“菜单'使用”关于“对话框模板创建一个关于窗体(名为frmAbout)'然后完成计算机应用程序的”帮助-关于”子菜单的Click事件代码PrivateSubAbout_Click()frmAbout.Show1EndSub9.退出命令按钮的Click事件PrivateSubCommand18_Click()EndEndSub283.1.5计算机应用程序分析上述计算器应用程序的特点:(1)在界面设计方面,用到的控件种类、数量多,窗体的设计精细了许多,应用程序有两个窗体。(2)控件间的联系比较密切,比如数字区按钮的Click事件,会影响txtFirst和txtSecond文本框的Text属性值,而txtFirst控件的属性会进一步影响txtResult。(3)程序代码的结果开始有点复杂,比如用到了IF……THEN之类的条件判断结构。293.2可视化界面设计基础3.2.1可视化界面设计概述VB可视化程序设计包括两部分内容:用户界面设计编写程序代码界面是应用程序最重要的组成部分。一个好的应用程序应具有友好的用户接口界面。而窗体是应用程序的对外接口,是其它控件的载体和容器。30VB应用程序的窗体有三种:单窗体:一个应用程序只包含一个窗体。多窗体:一个应用程序包含多个窗体。MDI窗体:是一种特殊的多窗体界面。有一个父窗体和众多的子窗体构成。31设计美观的窗体界面的一些基本原则:窗体的颜色不要过多,否则不易读。如果要设计多彩色的窗体界面,那么应当尽量同一色系的颜色,比如蓝、淡蓝等。不要试图在一个窗体上放置过多的信息。尽可能以清晰简明的方式设计窗体。使用适当的颜色、图片来增加窗体的趣味是必要的,但要适度。界面元素应尽可能一致,只选择最适合特定应用程序的控件。32习题P94二、2.是应用程序的对外窗口,是其它控件和载体的容器。答案:窗体333.2.2多窗体设计当应用程序的功能比较复杂时,就需要添加多个窗体来实现程序功能。这就是多窗体设计。1.添加窗体一般通过“工程-添加窗体”菜单完成。342.设置启动窗体每个应用程序都有开始执行的入口。应用程序开始运行时首先出现的窗体称为启动窗体。在默认的情况下,创建的第一个窗体为启动窗体。如果想在应用程序启动时首先启动别的窗体,那么就得修改启动窗体的设置了。35利用“工程属性”对话框设置启动窗体36让程序首先执行一个子过程,通过该子过程加载显示窗体。Main子过程是标准模块中的一个子过程。可以通过“工程-添加模块”菜单创建一个标准模块,然后在其中输入代码。37习题P94二、3.每个应用程序都有开始执行的入口,在VB中这种窗体称为。答案:启动窗体383.窗体的装载与卸载(1)Load语句Load语句用于