VB程序设计教程集.ppt
《VB程序设计教程集.ppt》由会员分享,可在线阅读,更多相关《VB程序设计教程集.ppt(80页珍藏版)》请在三一办公上搜索。
1、4.1 顺序结构,4.2 选择结构程序设计,4.3 循环结构,第4章 基本的控制结构,退出,4.4 综合实例,4.1 顺序结构,4.1.1 数据输出,4.1.2 数据输入,返回,退出,4.1.1 数据输出,1 Print方法,2 与Print方法有关的函数,3 使用位置属性,4 清除方法CLS,5 使用“标签”控件的输出,1 Print方法,Print方法的语法格式为:,object.Print Spc(n)|Tab(n)expression charpos,其中:,object:窗体、图片框、打印机等对象。,Expression:要打印的数值表达式或字符串表达式。,Charpos:逗号或分号
2、,指定下个字符的插入点。,2.与Print方法有关的函数,与Print相配合的函数:,(1)Tab函数,与 Print#语句或 Print 方法一起使用,对输出进行定位。格式:,Tab(n),当在一个 Print方法中有多个Tab函数时,每个Tab函数对应一个输出项,各输入项之间用分号隔开。,例题,Private Sub Form_Click()Print Tab(5);5;Tab(10-2);8,注意这里10-2当前位置5,故同行显示 Print Tab(5);5;Tab(10-6);4;Tab(20-15);5;注意这里10-6当前位置4,故同行显示End Sub程序执行结果见图4-1。程
3、序中已经对程序显示特点做出解释。,图4-1 Print方法与Tab()函数结合,(2)Spc函数,格式:,Spc(n),在显示或打印列表中的下一个表达式之前插入n个空白数,n为032767之间的整数。Spc函数与输出项之间用分号隔开。,如果 n 小于输出行的宽度,则下一个打印位置将紧接在数个已打印的空白之后。如果 n 大于输出行的宽度,则 Spc 利用下列公式计算下一个打印位置:当前位置+(n Mod 行宽)Spc函数与Tab函数的作用类似,可以互相代替。但应注意,Tab函数从对象的左端开始记数,而Spc函数只表示两个输出项之间的间隔。,3.使用位置属性,位置属性CurrentX和Curren
4、tY常用来把文本精确地输出到窗体、图片框或打印页上。这两个属性分别表示当前输出位置的横坐标与纵坐标。,格式:,对象名称.CurrentX=x,对象名称.CurrentY=y,例如:下面程序将图片框相对于窗体居中显示,图片框中的文字居中显示。Private Sub Form_Click()Dim str1 As String str1=图片框相对窗体、文字相对图片框居中显示 Picture1.FontName=宋体 图片框中文字的字体 Picture1.FontSize=16 图片框中文字的字号 Picture1.Left=(ScaleWidth-Picture1.Width)/2 图片框水平位
5、置 Picture1.Top=(ScaleHeight-Picture1.Height)/2 图片框垂直位置 Picture1.CurrentX=Picture1.ScaleLeft+Picture1.Width/2-Picture1.TextWidth(str1)/2 输出水平位置 Picture1.CurrentY=Picture1.ScaleTop+Picture1.Height/2-Picture1.TextHeight(str1)/2 输出垂直位置 Picture1.Print str1 在图片框中输出字符串str1End Sub各对象的其他参数保持默认值。程序设计时和运行结果见图4
6、-2。无论怎样调整窗体,只要单击窗体,都会按题目要求调整图片框和文本的位置。TextWidth()为求文本宽度的函数。,(a)设计时(b)运行时图4-2 位置属性的应用,4.清除方法CLS,Cls 将清除图形和打印语句在运行时所产生的文本和图形,清除后的区域以背景色填充。但是设计时在 Form 中使用 Picture 属性设置的背景位图和放置的控件不受 Cls 影响。,语法:,对象名称.Cls,例如,为了在运行时双击窗体时清除图片框中的文本,编写的程序为:Private Sub Form_DblClick()Picture1.Cls 清除图片框中的文本End Sub如果将代码由Picture1
7、.Cls改为.Cls,将无法清除图片框中的文本。,5.使用“标签”控件的输出,标签(Label)是VB中最常用的输出文本信息的工具,目前几乎完全取代了Print方法。,例如:建立一个Label控件和Command控件,按表4-1设置设计时属性。加入如下代码,运行程序。Private Sub Command1_Click()Label1.WordWrap=True Label1.AutoSize=True Label1.BorderStyle=1 Label1.BackColor=&H80000014End Sub由运行结果可知,单击命令按钮后,标签控件可以自动适用内容,并自动换行,且加上边框,
8、背景色为白色以突出显示文字。,表4-1 属性设置,(a)设计时(b)运行结果图4-3 利用标签控件输出,4.1.2 数据输入,1 使用“文本框”控件进行输入,2 SetFocus 方法,3 与用户交互的函数和过程,1 使用“文本框”控件进行输入,例4-1:如图4-4所示,在设计时建立四个标签控件和三个文本框控件,各控件的设置见表4-2。要求在运行时,双击填写意见的文本框,可以将该文本框放大至窗口的1/2。,设计步骤如下:(1)建立应用程序用户界面单击“文件|新建工程”,进入窗体设计器。按如图4-4(a)所示布局增加四个标签Label1 Label4和三个文本框Text1Text3。(2)属性设
9、置按表4-3所示设置各对象的属性值,其他属性值不变。(3)编写代码双击Text3文本框,打开Text3的代码窗口,在过程下拉列表框中选择“DblClick”,编写Text3的DblClick事件的代码:Private Sub Text3_DblClick()Text3.Left=0Text3.Width=Width Text3的宽度为窗口宽度Text3.Height=Height/2 Text3的高度为窗口高度的1/2Label4.Top=Text3.Top+Text3.Height+100 Label4始终在Text3之下End Sub,2 SetFocus 方法,使某个控件获得焦点,可以有
10、多种方法:(1)直接单击这一控件。(2)按Tab键(或Tab+Shfit组合键)按规定的次序在各控件之间移动焦点。(3)在代码中使用SetFocus 方法使得某一控件获得焦点。使用SetFocus 方法的格式为:.SetFocus其中:为对象表达式,其值为可以获得焦点的控件对象名称。,例4-2:在上述工程中,增添一个命令按钮,单击该按钮时将清空所有文本框中的内容(完善的工程将要编写保存用户信息的代码)。(1)增加Command命令按钮。在窗体的合适位置增加一个Command命令按钮,调整其大小。(2)设置属性可以将Caption属性值设置为“发送”。设置Font属性符合整体风格。(3)编写Co
11、mmand1的Click事件的代码Private Sub Command1_Click()Text1.Text=Text2.Text=Text3.Text=Text1.SetFocusEnd Sub并在上例代码的后面增加一行如下代码:Command1.Top=Text3.Top+Text3.Height+100 Command1始终在Text3之下该代码使得Command1控件始终保持在Text3控件之下。,3 与用户交互的函数和过程,1InputBox函数 作用:在一对话框中显示提示,等待用户输入正文或按下按钮,并返回包含文本框中内容,函数值的类型为 String类型。语法格式:变量%=In
12、putBox(,),2MsgBox函数和MsgBox过程,作用:在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。,语法格式,变量%=MsgBox(,),例4-3:在上述实例中,要求单击“发送”命令按钮后,显示如下对话框,提示您输入身份证号,并将输入内容保存在变量strIDcard中。增添的代码为:Private Sub Command1_Click()Dim strIDcard As String,strText As StringstrText=请输入您的身份证号并单击“确定”+Chr(13)+Chr(10)+重新填写请单击“取消”strIDcard=Input
13、Box$(strText,身份证号,100,100)Text1.SetFocusEnd Sub,如果单击“确定”按钮,则strIDcard的值为输入值“123456789”,否则为空字符串。,图4-5 使用InputBox 函数,(2)MsgBox函数和MsgBox过程MsgBox函数在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。其语法格式为:变量%=MsgBox(,)MsgBox语句的用法为:MsgBox,其中:、和的意义同InputBox函数。可选项。整型表达式,指定显示按钮的数目及形式,使用的图标类型,缺省按钮的种类以及消息框的强制回应等。如果省略,则 的
14、缺省值为 0。,表4-3 设置值及其意义,表4-4 MsgBox函数的返回值,单击“是”:完成提交操作,显示如图4-7对话框,单击“确定”结束程序。单击“否”:返回Command1_click事件,重新显示如图4-5所示输入对话框。单击“取消”:没有提交操作,显示如图4-8对话框,单击“确定”结束程序。,图4-6 MsgBox 对话框的应用(a),例4-4:在上例中,如果要求在单击InputBox对话框中的“确定”按钮后,弹出一个如图4-6所示的对话框,以便用户进行审查并作出如下选择:,图4-7 MsgBox 对话框的应用 图4-8 MsgBox 对话框的应用,修改的Command1_clic
15、k事件代码为:Private Sub Command1_Click()Dim intMsgin As IntegerDim strmsg As StringstrText=请输入您的身份证号并单击“确定”+Chr(13)+Chr(10)+重新填写请单击“取消”strIDcard=InputBox$(strText,身份证号,100,100)strmsg=请确认您的身份证号码:+Chr(13)+Chr(10)+strIDcard 图4-9对话框显示的内容If strIDcard ThenintMsgin=MsgBox(strmsg,vbYesNoCancel+vbQuestion+vbDefau
16、ltButton2,确认身份证)End IfSelect Case intMsginCase 6.提交意见单的代码略MsgBox 您的意见已经提交,谢谢!,vbOKOnly+vbInformation,已经提交Case 7Command1_Click 重新执行Command1_Click 事件Case 2MsgBox 您已经放弃提交意见,欢迎下次参加!,vbOKOnly+vbCritical,放弃提交End SelectEndEnd Sub,4.2 选择结构程序设计,4.2.1 If条件语句,4.2.2 Select Case,4.2.3 条件函数,返回,退出,4.2.1 If条件语句,1单分
17、支条件结构(If.Then语句),2双分支结构(If.Then.Else语句),3多分支结构(IfThenElseIf语句),4If语句的嵌套,1单分支条件结构(If.Then语句),用 If.Then 结构有条件地执行一个或多个语句。单行语法和多行块语法都可以使用:(1)If Then(2)If ThenEnd If下面两个例子等价:(1)If todayDate 为 True 时要执行多行代码,则必须使用多行块 If.Then.End If 语法。例如:If todayDate Now Then todayDate=Now Timer1.Enabled=False 定时器控制失效。End
18、If,图4-12 单分支条件语句 图4-13 单分支条件语句实例,2.双分支结构(If.Then.Else语句)可以用 If.Then.Else 块定义几个语句块,执行其中一个语句。其语法格式也有两种形式:(1)If ThenElseEnd If(2)If ThenElse,当的值为真时,执行Then后面的语句块1(或语句1),否则执行Else后面的语句块2(或语句2)。其流程见图4-11。,y=,图4-14 双分支结构流程,例如:计算分段函数,y=,本题在选择条件时,可以选择x0作为条件,也可以选择x0作为条件。这里选择x0作为条件。画出如图4-12所示流程图。,y=,图4-12 双分支结构
19、流程实例,y=3*x*x+4*x-5,1)用单分支结构实现y=3*x*x+4*x-5If x0 Then y=,或If x0 Then y=3*x*x+4*x-5If x0 Then y=,但是,不能这样表示:If x0 Then y=,(2)用双分支结构实现If x0 Then y=,Elsey=3*x*x+4*x-5End If,y=3*x*x+4*x-5,3.多分支结构(IfThenElseIf语句)多分支结构可以处理两个或两个以上分支。其语句形式为:If Then ElseIf Then Else End IfVisual Basic 首先测试。如果它为 False,Visual Ba
20、sic就测试,依次类推,直到找到一个为 True 的条件。当它找到一个为 True 的条件时,Visual Basic就会执行相应的语句块,然后执行 End If 后面的代码。作为一个选择,可以包含 Else 语句块,如果条件都不是 True,则 Visual Basic 执行 Else 语句块。,图4-13 多分支结构流程,False,True,True,False,True,False,语句块n+1,语句块n,例4-5:利用If.Then.Else 语句编写求函数,y=,的值的程序,要求只要在文本框Text1中输入自变量x的值,就在标签栏label1上显示函数值。根据题意,在窗体上添加一个
21、文本控件Text1和标签控件label1,代码应包含在Text1_change事件中。代码为:Private Sub Text1_Change()Dim x As Double,y As Double Label1.Caption=清空Label1的内容 x=CDbl(Text1.Text)将字符串类型转化为双精度类型 If(x=1#And x=2#)Then y=(1#-x)*(2#-x)Else y=-(2#-x)End IfLabel1.Caption=y 在Label1上显示结果End Sub,图4-14 多分支结构流程实例,True,False,y=1#-x,例4-6:大学录取新生时
22、,根据学生总分情况给与奖励,条件如下:(1)四门总分不低于700分,特等奖。(2)四门总分680分(含680分)700分(不含700分),优秀奖。(3)前三门单科不低于145分,第四门不低于280分),特别奖。(4)奖励按特等奖、优秀奖、特别奖由高到低,不重复计奖(包括单科)。要求:四科成绩(intmark1、intmark2、intmark3、intmark4)依次在四个文本框中输入,总分(intmark0)在标签控件上显示。单击命令按钮Command1后,在对话框中显示获奖情况。分析:获奖条件表达式分别为:(1)intmark0=700(2)intmark0=680 AND intmark
23、0=145 OR intmark2=145 OR intmark3=145 OR intmark4=280流程图见图4-18。设计步骤如下:(1)建立应用程序用户界面按如图4-19建立四个文本框(Text1Text4)接受成绩输入,两个标签控件(Label1Label2),一个命令按钮Command1,设置各控件的属性,其中Command1的Caption属性值为“查询”。,图 4-15多分支结构流程实例,True,Flase,True,Flase,图4-16应用程序运行情况,(2)编写程序代码根据流程图,编写出Command_click事件的代码为:Private Sub Command1_
24、Click()Dim intmark0 As Integer,intmark1 As Integer Dim intmark2 As Integer,intmark3 As Integer,intmark4 As Integer intmark1=CInt(Text1.Text)intmark2=CInt(Text2.Text)intmark3=CInt(Text3.Text)intmark4=CInt(Text4.Text)intmark0=intmark1+intmark2+intmark3+intmark4 Label3.Caption=intmark0 If intmark0=700
25、Then MsgBox 您获得了特等奖,vbOKOnly+vbInformation,获奖通知 ElseIf intmark0=680 Then MsgBox 您获得了优秀奖,vbOKOnly+vbInformation,获奖通知 ElseIf intmark1=145 Or intmark2=145 Or intmark3=145 Or intmark4=280 Then MsgBox 您获得了特别奖,vbOKOnly+vbInformation,获奖通知 Else MsgBox 很遗憾,您没有获奖,vbOKOnly+vbInformation,获奖通知 End IfEnd Sub,4.If
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 教程
链接地址:https://www.31ppt.com/p-5451944.html