《第2章VisualBasic编程基础》由会员分享,可在线阅读,更多相关《第2章VisualBasic编程基础(113页珍藏版)》请在金锄头文库上搜索。
1、第第2章章 Visual Basic 编程基础编程基础鞍叠惋捞写过寝信钞述蜘佃鸯斤颇崔萄舟剖评豢狄瘁簧灯弓潞狰澳恩米陨第2章VisualBasic编程基础第2章VisualBasic编程基础1台州学院计算机系 应建健编本章内容本章内容2.1窗体 2.1.1 2.1.1 窗体的构造窗体的构造 2.1.2 2.1.2 窗体的属性窗体的属性 2.1.3 2.1.3 窗体的事件窗体的事件 2.1.4 2.1.4 窗体的方法窗体的方法 2.1.5 2.1.5 多窗体多窗体 2.1.6 2.1.6 窗体加载与卸载时触发的事件窗体加载与卸载时触发的事件2.22.2数据类型、常量与变量数据类型、常量与变量2.
2、3 Print2.3 Print语句和赋值语句语句和赋值语句2.42.4运算符、表达式、常用内部函数运算符、表达式、常用内部函数2.5 2.5 编程实例编程实例匙沪舜艳抢赊折僧镊摊谍飞牵缺很雁冷劣婪枉曝怒苫啄停乐诣猾狂罗绒窥第2章VisualBasic编程基础第2章VisualBasic编程基础2台州学院计算机系 应建健编2.1窗体窗体2.1.1 窗体的构造2.1.2 窗体的属性 2.1.3 窗体的事件2.1.4 窗体的方法2.1.5 多窗体2.1.6 窗体加载与卸载时触发的事件闽沟藩凸蛾窃力辖背粮富演量翟惟荐肛涉标杠化扩锋死脖汕腑痛藏向植猫第2章VisualBasic编程基础第2章Visua
3、lBasic编程基础3台州学院计算机系 应建健编2.1.1 窗体的构造窗体的构造同普通应用程序的窗口一样,用Visual Basic设计的窗体也具有控制菜单、标题、最大化按钮、最小化按钮、关闭按钮、边框、窗体最小化图标等。下页的图2-1是我们在上一章的实例中编制出来的程序窗体,图中标出了窗体的这些构造,并在括号中标注了与这些构造相关的属性名称,你可以在窗体设计时,通过修改这些属性值来改变窗体的外观。逻金昆焊组枝溢箩身觅瞒台疑仕桌诗士尚李裕悦疗粪娇椽府条扔指坐宽痕第2章VisualBasic编程基础第2章VisualBasic编程基础4台州学院计算机系 应建健编2.1.1 窗体的构造窗体的构造图
4、2-1 窗体的构造和对应的属性叼涝贷豁邮拴媒员忱襟狄胯泰暖样瑟挫豪弘腐衅汗秆策筋鹰门蜜凛眩镰柞第2章VisualBasic编程基础第2章VisualBasic编程基础5台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性窗体的常用属性有:Name、Left、Top、Width、Height、ScaleWidth、ScaleHeight、Caption、Font、ForeColor、BackColor、AutoRedraw、BorderStyle、ControlBox、Icon等。县纵敝越当叉涵糯彬小辟蠕架盂直提澜论拿乳宰越界揪篡滓烬猿只厩嘶禁第2章VisualBasic编程基础第2章Vi
5、sualBasic编程基础6台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 1. 1. 窗体的名称属性(窗体的名称属性(窗体的名称属性(窗体的名称属性(NameName属性)属性)属性)属性)属性窗体列表中的“(名称)”属性,它指示了窗体的内部名称。Visual Basic中的任何对象都有Name属性,每个对象的名称各不相同,它是一个对象区别于另一个对象的标识,程序员在设计代码时,需要用对象的名称来引用对象。第一个窗体新建时的缺省名称是Form1,你可以对其重命名,赋予它更加体现实际意义的名称,如“MainForm”等。注意:Name属性值不会反映到界面上,但它被用于代码中,如果在
6、编程过程中,对象的名称被修改,很可能使原来运用旧名称编写的代码出错,因此,改对象的名称一般放在编制代码前进行,在本书的大多数例程中,我们将不对对象名称进行修改,而是使用系统提供的默认名称。 履禁树肃氦程司孔蛔牧钒救亢史按齿国寅琅刹站技允妮雨氮牺渭磅婆菏胜第2章VisualBasic编程基础第2章VisualBasic编程基础7台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 2. 2. 窗体的位置和大小属性(窗体的位置和大小属性(窗体的位置和大小属性(窗体的位置和大小属性(LeftLeft、TopTop、WidthWidth、HeightHeight)如图2-2(下页)所示,窗体在屏
7、幕上的位置由窗体左上角在屏幕上的坐标决定,即窗体左边距离屏幕左边的距离,以及窗体上边距离屏幕上边的距离,这两个属性分别是窗体的Left属性和Top属性。而窗体的大小则由窗体的宽和窗体的高来决定,它们分别是窗体的Width属性和Height属性。另外,在Visual Basic中,屏幕也被当作对象来处理,它的对象名称为Screen,屏幕具有宽和高的属性。注意:在Visual Basic中,长度的缺省单位是twip。在缺省情况下,1twip=1/15像素=1/1440inch=1/567cm。丈告率遏绽莉咬您息径除庸氛昭懈障使就硅匪确渡酋六口确呈助弃砌幂册第2章VisualBasic编程基础第2章
8、VisualBasic编程基础8台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性图2-2 窗体在屏幕的位置和大小厉肛胎廷氧瑞刑嘶叠荡赦康计院负铸段边损估淤莱勋旦缓闲尿便摹豢堤姓第2章VisualBasic编程基础第2章VisualBasic编程基础9台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性【例2-1】 窗口位置和大小的设置演练:设计一个窗体,上面有两个命令按钮Command1和Command2,为这两个按钮添加Click事件代码,使得运行时单击第一个命令按钮,能将窗体移到屏幕的左上角,单击第二个命令按钮,能将窗体移到屏幕的中间,并改变窗体的大小为屏幕大小的一半。折死
9、立腔戊激怀坎侯佐檬眉辆滇砌干橡旱领使讼外脾揽醛步买残灯垣遇恬第2章VisualBasic编程基础第2章VisualBasic编程基础10台州学院计算机系 应建健编步骤一,界面设计步骤一,界面设计步骤一,界面设计步骤一,界面设计。新建工程,在新窗体Form1上添加两个命令按钮,采用默认名称Command1和Command2(图2-3)。图2-3 例2-1的界面设计若故织嗡跺湖岁腿禹蔡氧著乡长栽块熙尺吸咎节垫颧新释甫夜般站食冲欺第2章VisualBasic编程基础第2章VisualBasic编程基础11台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 步骤二,添加事件代码步骤二,添加事件
10、代码步骤二,添加事件代码步骤二,添加事件代码。 双击双击Command1Command1,为,为Command1Command1的的ClickClick事件添加以下代码:事件添加以下代码:Private Sub Command1_Click()Private Sub Command1_Click() Form1.Left = 0 Form1.Left = 0 设置窗体设置窗体Form1Form1到屏幕左边的距离为到屏幕左边的距离为0 0 Form1.Top = 0 Form1.Top = 0 设置窗体设置窗体Form1Form1到屏幕上边的距离为到屏幕上边的距离为0 0End SubEnd S
11、ub 注:上面代码的单引号后的文字是对程序的注释,以便于你理注:上面代码的单引号后的文字是对程序的注释,以便于你理解代码,可不用输入。解代码,可不用输入。 疚轨帅树霖捣味间斟咳季匝优吞及口惭楷选守呀裙甸浙柞毫经护沏约讲然第2章VisualBasic编程基础第2章VisualBasic编程基础12台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 双击双击Command2Command2,为,为Command2Command2的的ClickClick事件添加以下代事件添加以下代码:码:Private Sub Command2_Click()Private Sub Command2_Cli
12、ck() Form1.Width = Screen.Width / 2 Form1.Width = Screen.Width / 2 设置窗体设置窗体Form1Form1的宽的宽度为屏幕宽的一半度为屏幕宽的一半 Form1.Height = Screen.Height / 2 Form1.Height = Screen.Height / 2 设置窗体设置窗体Form1Form1的高的高度为屏幕高的一半度为屏幕高的一半 Form1.Left = (Screen.Width - Form1.Width) / 2 Form1.Left = (Screen.Width - Form1.Width) /
13、 2 使使Form1Form1水平居中水平居中 Form1.Top = (Screen.Height - Form1.Height) / 2 Form1.Top = (Screen.Height - Form1.Height) / 2 使使Form1Form1垂直居中垂直居中End SubEnd Sub敢犯巡御搽牵宿揩拢侣预瑚咐片衬管死操氢翼簿徽藕仅检丫坦景汗毙社裔第2章VisualBasic编程基础第2章VisualBasic编程基础13台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性步骤三,运行程序步骤三,运行程序步骤三,运行程序步骤三,运行程序。单击工具栏启动按钮运行程序,在运
14、行的窗体上分别单击两个命令按钮,观察窗体的位置和大小的变化。步骤四,技能拓展步骤四,技能拓展步骤四,技能拓展步骤四,技能拓展。对照代码,思考一下:运行时,窗体为什么会在用户单击按钮后产生变化?试一试:改变代码,使得单击Command1之后,窗体位置移到屏幕的顶部中间?或窗体右边框和屏幕最右边对齐?披铰汝蔫掇回外岿踪谢砒陨拄嚼事房纶爸正加哗锭珠乐舀宁种帝宾夸敛踌第2章VisualBasic编程基础第2章VisualBasic编程基础14台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性3. 窗体的标题属性(窗体的标题属性(Caption属性)属性)窗体的Caption属性决定了窗体标题栏
15、上的文本内容。蔓淡隧阿焦兹勿鲁麻伦巡觉缕模亲唱桌恰苫应诚殊沏汛脸亨绦旨欠驶积犁第2章VisualBasic编程基础第2章VisualBasic编程基础15台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性4. 4. 字体字体字体字体FontFont属性组属性组属性组属性组字体Font属性组如表2-1所示。属性属性属性属性数据数据数据数据类类型型型型含含含含义义FontNameFontNameFontNameFontName字符型字符型字符型字符型字体名称(缺省:字体名称(缺省:字体名称(缺省:字体名称(缺省: 宋体宋体宋体宋体 )FontSizeFontSizeFontSizeFont
16、Size整型整型整型整型字体大小(缺省:字体大小(缺省:字体大小(缺省:字体大小(缺省:9 9 9 9 磅)磅)磅)磅)FontBoldFontBoldFontBoldFontBold逻辑逻辑型型型型是否粗体(缺省:是否粗体(缺省:是否粗体(缺省:是否粗体(缺省:FalseFalseFalseFalse)FontItalicFontItalicFontItalicFontItalic逻辑逻辑型型型型是否斜体(缺省:是否斜体(缺省:是否斜体(缺省:是否斜体(缺省:FalseFalseFalseFalse)FontStrikeThruFontStrikeThruFontStrikeThruFont
17、StrikeThru逻辑逻辑型型型型是否加是否加是否加是否加删删除除除除线线(缺省:(缺省:(缺省:(缺省:FalseFalseFalseFalse)FontUnderLineFontUnderLineFontUnderLineFontUnderLine逻辑逻辑型型型型是否是否是否是否带带下划下划下划下划线线(缺省:(缺省:(缺省:(缺省:FalseFalseFalseFalse)表2-1 字体Font属性组遏寥顾票悠牧泥艰啪瞧饺肯拷榔荣惟出培荷筑扫峡摆西增忘溃犁您冰悲苹第2章VisualBasic编程基础第2章VisualBasic编程基础16台州学院计算机系 应建健编2.1.2 窗体的属性
18、窗体的属性 5. 5. 窗体的颜色属性(窗体的颜色属性(窗体的颜色属性(窗体的颜色属性(ForeColorForeColor、BackColorBackColor属性)属性)属性)属性)窗体的ForeColor属性代表前景色,改变它的值,能使窗体内显示的文字具有指定的颜色,对窗体的BackColor属性的修改能改变窗体的背景色。在Visual Basic中,颜色值是一个长整数,也可以使用Visual Basic系统内部给定的常量和特定的函数来设定颜色值。例如,将窗体Form1的背景色设置为红色,可以使用代码:Form1.BackColor = vbRed也可以用RGB函数来设置:Form1.B
19、ackColor = RGB(255, 0, 0)RGB函数的三个参数分别代表红、绿、蓝三种颜色分量的大小,值从0到255,上面的RGB(255,0,0)代表只有最大红分量值构成的颜色,即红色,又如RGB(128,0,0)为深红色,RGB(0,255,0)表示绿色。汕嘿递默咀胃搔藐畔勉译衰藐督溃治男素桨魏磊软喊此赂烙蜀鲤痰疵鲁炭第2章VisualBasic编程基础第2章VisualBasic编程基础17台州学院计算机系 应建健编6. 6. 窗体的边框样式属性(窗体的边框样式属性(窗体的边框样式属性(窗体的边框样式属性(BorderStyleBorderStyle属性)属性)属性)属性)窗体的边
20、框样式决定了窗体的外观和操作特点,窗体的BorderStyle属性可以取六种值,如表2-2所示。属性属性值值系系统统常量常量含含义义0 0vbBSNonevbBSNoneNoneNone无(没有无(没有边边框或与框或与边边框相关的元素)框相关的元素)1 1vbFixedSinglevbFixedSingleFixed Single Fixed Single 固定固定单边单边框。可以包含控制菜框。可以包含控制菜单单框、框、标题标题栏栏、最大化按、最大化按钮钮、最小化按、最小化按钮钮。只有使用最大化和最小。只有使用最大化和最小化按化按钮钮才能改才能改变变大小大小2 2vbSizablevbSiza
21、bleSizeableSizeable(缺省(缺省值值)可)可调调整的整的边边框。可以使用框。可以使用设设置置值值1 1列列出的任何可出的任何可选边选边框元素重新改框元素重新改变变尺寸尺寸3 3vbFixedDialogvbFixedDialogFixed Dialog Fixed Dialog 固定固定对话对话框。可以包含控制菜框。可以包含控制菜单单框和框和标题标题栏栏,不能包含最大化和最小化按,不能包含最大化和最小化按钮钮,不能改,不能改变变尺寸尺寸4 4vbFixedToolWindowvbFixedToolWindowFixed ToolWindow Fixed ToolWindow
22、固定工具窗口。不能改固定工具窗口。不能改变变尺寸。尺寸。显显示示关关闭闭按按钮钮并用并用缩缩小的字体小的字体显显示示标题栏标题栏。窗体不在。窗体不在 WindowsWindows任任务务条中条中显显示示5 5vbSizableToolWindowvbSizableToolWindowSizeable ToolWindowSizeable ToolWindow可可变变尺寸工具窗口。可尺寸工具窗口。可变变大小。大小。显显示关示关闭闭按按钮钮并用并用缩缩小的字体小的字体显显示示标题栏标题栏。窗体不在。窗体不在WindowsWindows任任务务条中条中显显示示苫瞳旷撩痛桓扼峡输询热修仇荧财写蛹俘痢仓
23、啸刑票曙陵嚏局檀漏坝翱伎第2章VisualBasic编程基础第2章VisualBasic编程基础18台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 7. 7. 窗体标题栏上的几个属性窗体标题栏上的几个属性窗体标题栏上的几个属性窗体标题栏上的几个属性如图2-1所示,Icon属性决定了窗体左上角或最小化时在Windows任务条中显示的图标,它的默认图标是,可以通过属性窗口的Icon属性值来改变图标,但是必须事先准备好图标文件。ControlBox属性决定了运行时窗体是否显示控件菜单栏,它是一个逻辑值,其值设为True时显示控件菜单栏,其值设为False时不显示控件菜单栏,即不显示窗体左
24、上角的图标,以及最小化、最大化、关闭按钮。 在在ControlBoxControlBox属性设为属性设为TrueTrue时时,可以通过MaxButton和MinButton属性的设置来决定是否显示窗体的最小化和最大化按钮,当它们取True时,显示相应的按钮,取False时,不显示相应的按钮。括倔遂愚晒咀攘橱钉撕胎芽驱睦仔仆臀蚕须钝鹰传腑乾矮君嗓陕梗汇徽双第2章VisualBasic编程基础第2章VisualBasic编程基础19台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 8. 8. 窗体其他的常用属性窗体其他的常用属性窗体其他的常用属性窗体其他的常用属性Picture属性指定窗
25、体中显示图片。WindowsState属性指定了窗体在运行时所处的状态,它可以取三种值,0-vbNormal代表正常的窗口状态,1-vbMinimized代表窗体处于最小化状态,2-vbMaxmized代表窗体处于最大化状态。AutoRedraw属性指定了窗体被掩盖部分重新出现后采用的显示方式,True表示窗体内容将被重新画出,False表示窗体内容不能被重新画出。ScaleWidth和ScaleHeigh属性表示窗体内部的宽度和高度。由于窗体有边框和标题栏,因此,窗体内部的可用空间要比窗体的宽度(Width)和高度(Height)要小,而ScaleWidth、ScaleHeigh属性值不包含
26、窗体的边框和标题栏,代表了窗体内的真正空间大小。腆熏回衬应哭真刺颗津吨雁毅红乃嚼尽苛煌讶褒匙庶老灶荐轨债杯贺郊邮第2章VisualBasic编程基础第2章VisualBasic编程基础20台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性【例2-2】 窗体的常用属性演练。设计如图2-4所示的窗体,在窗体的右边依次放置四个命令按钮,名称分别为Command1、Command2、Command3、Command4,修改好它们的Caption属性,使得这四个命令按钮上面显示的文字与图中所示一致。图2-4 例2-2的窗体设计界面图庭基介饿砌也赂搀昏余慈凑补及贩冲崔屹送懂是骄宙赎撑贾来季皱舀隆炭
27、第2章VisualBasic编程基础第2章VisualBasic编程基础21台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性 然后为这四个命令按钮的然后为这四个命令按钮的ClickClick事件分别添加以下代码:事件分别添加以下代码:Private Sub Command1_Click()Private Sub Command1_Click() Form1.Caption = Form1.Caption = 我的我的VBVB窗体窗体 改变窗体标题文字改变窗体标题文字End SubEnd SubPrivate Sub Command2_Click()Private Sub Comman
28、d2_Click() Form1.BackColor = vbBlue Form1.BackColor = vbBlue 设置窗体背景色为蓝色设置窗体背景色为蓝色End SubEnd SubPrivate Sub Command3_Click()Private Sub Command3_Click() Form1.ForeColor = vbWhite Form1.ForeColor = vbWhite 设置今后显示的字体为白设置今后显示的字体为白色色 Print Print 你好!你好! 在窗体上显示文字在窗体上显示文字End SubEnd SubPrivate Sub Command4_C
29、lick()Private Sub Command4_Click() Form1.FontSize = Form1.FontSize + 3 Form1.FontSize = Form1.FontSize + 3 将字体放大将字体放大End SubEnd Sub协稠克疙孺颁碴瓤茄踌昭减接生权宿刷妙署扣肺诌焚拱从鸣增拷胁埋懈敢第2章VisualBasic编程基础第2章VisualBasic编程基础22台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性接下来进行运行演示。首先运行程序,在窗体界面上进行以下操作:(1)单击第一个命令按钮,窗体标题栏的文字被改变为“我的VB窗体”;(2)单击第
30、二个命令按钮,窗体的背景颜色被设置为蓝色;(3)单击第三个命令按钮,在窗体上显示白色的文字“你好!”(4)单击第四个命令按钮,然后再单击第三个命令按钮,在窗体上显示放大后的文字。(5)对第三个和第四个命令按钮随意点击,观察现象。猜哎魂淑堤人七替晃学晴碗沙巴坑轩皇瑞浅恿益刑基彤缅瓶镰站榷扩纬举第2章VisualBasic编程基础第2章VisualBasic编程基础23台州学院计算机系 应建健编2.1.2 窗体的属性窗体的属性紧接着做以下试验:(1)将窗体拖动到屏幕左边,使小半个窗口移出屏幕,然后将窗体拖回屏幕中间,发现窗体上的文字被擦掉。(2)关闭程序,到窗体设计界面,将窗体的AutoResiz
31、e属性改为True,运行程序,重复上面一系列动作,发现文字没有被擦掉,窗体内容被自动重画。拓展练习:修改代码,使程序在窗体显示不同的文字,设置不同的颜色,设置不同的字体。思考:从上面的两个例子中你是否能总结出,窗体的属性是怎样设置的?你能运用这些属性动态改变窗体的外观吗?枢冬柴丢任格蘸冕馏宗治漠募该详沁镜雄羡驰铺往乍玖玩婶镐砂盯辱呻柬第2章VisualBasic编程基础第2章VisualBasic编程基础24台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件窗体的常用事件有:Load、Click、DblClick、Activate、Paint、Resize、Unload等事件。 砸缅麦
32、灶厦残沃干泽嗓滇罗擒妈翱祖钓逼寝玉杨答涩雷斜谚痘说筹碉喇刑第2章VisualBasic编程基础第2章VisualBasic编程基础25台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件 1. Load1. Load事件事件事件事件在程序运行时,当窗体被装入工作区时,将触发Load事件。这个事件在窗体显示前被触发,因此可以在此事件中,对窗体和控件进行一些初始化操作。例如,在窗体上放置一个文本框Text1,双击窗体,为窗体添加以下代码,对文本框Text1进行初始化:Private Sub Form_Load() 窗体的Load事件代码 Text1.Text = 1 将文本框Text1的文本
33、初始化为1End Sub运行程序,可以发现,文本框内显示着文字“1”。考攫彭押瓣妇琴疤阁诸玫闰鬼界磨菱败侣沃炳阶文趁赏堰纫俘庄氏儒茅晰第2章VisualBasic编程基础第2章VisualBasic编程基础26台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件2. Click事件事件当程序运行时单击窗体内的某一位置,将触发窗体的Click事件。叫践缔梯邀悯路向恶震瘤蘑删斯志姆徐敝测奖蛀硕茅躺替欺恩娜缀碱咨艘第2章VisualBasic编程基础第2章VisualBasic编程基础27台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件【例2-3】 窗体单击事件的代码设计。 步骤一步
34、骤一步骤一步骤一,新建工程,双击窗体Form1进入代码窗口,但是,我们发现出现的事件代码框架是Load事件的代码框架,而非我们所需的Click事件的代码框架(图2-5)。图2-5 出现窗体的Load事件代码框架粮侈复型溺油讣耪确哦昔初悔氰垦沸槐戏哎剐炸慈饱搞捂告蕴卧凡矩丧楚第2章VisualBasic编程基础第2章VisualBasic编程基础28台州学院计算机系 应建健编步骤二步骤二步骤二步骤二,在代码窗口内单击右上的过程下拉按钮,出现窗体的所有事件列表,选择Click事件(图2-6左),于是,在代码窗口中产生了Click事件代码框架(图2-6右)。原先空白的Load代码框架仍然留在代码窗口
35、内,你可以将它删除,如果不删,等程序运行时,系统将自动把它删掉。图2-6 在过程列表中选择Click事件颇伐募普挨秽限曳荔稗继琼蓝差溯芋撰肄寻竿忿腕订涎辑风笔拴夏珊稿勇第2章VisualBasic编程基础第2章VisualBasic编程基础29台州学院计算机系 应建健编步骤三步骤三步骤三步骤三,为窗体的Click事件添加以下代码:Private Sub Form_Click() Print 你单击了我End Sub步骤四步骤四步骤四步骤四,运行程序,在运行界面的窗体上,用鼠标单击窗体,多试几次,结果如图2-7所示。图2-7 例2-3程序运行结果度诉洗扛擞螺弯示略脑颅颜篱犹镍顾厦玩阔酞网惭抓睛涂
36、朽估英乾梗谨顽第2章VisualBasic编程基础第2章VisualBasic编程基础30台州学院计算机系 应建健编 3. DblClick3. DblClick事件事件事件事件当程序运行时双击窗体内的某一位置,将触发窗体的DblClick事件。你可以修改例2-3的程序,为窗体的DblClick事件添加以下代码:Private Sub Form_DblClick() Print 你双击了我End Sub然后运行程序,用鼠标双击出现的窗体,察看程序运行结果。提示:当程序运行时,用鼠标双击窗体内的某一位置,将在第一次点击鼠标后,先触发Click事件,然后在完成双击动作后,触发DblClick事件。
37、你可以保留例2-3的单击事件代码,同时加上上面的双击事件代码,运行程序,用鼠标双击窗体,可以看到Click事件代码先被执行,然后再执行DblClick事件代码。弧夷昨岳哑杏簿敲李筒粗顾裸祷意晤房裹俘察牢杨帕只朋刃酚摄稳曰羡颅第2章VisualBasic编程基础第2章VisualBasic编程基础31台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件 4. Unload4. Unload事件事件事件事件卸载窗体时触发该事件。注意:如果窗体仅仅被隐藏,将不触发Unload事件,只有将窗体从内存中卸载掉,才触发该事件。 5. Resize5. Resize事件事件事件事件当窗体大小发生改变时
38、,将触发Resize事件。当窗体第一当窗体第一次装入内存后显示出来时也将触发次装入内存后显示出来时也将触发ResizeResize事件事件。一般情况下,当窗体的大小被改变后,窗体上面的控件对象布局可能需要重新调整,此时就需要在窗体的Resize事件中添加代码,来调整窗体内控件对象的布局。升芥迟肥硒诬唐袁悟威澈蛇搜歌畴膘颁冈暗幅税胃微茁年啮油甭洁仓郎钧第2章VisualBasic编程基础第2章VisualBasic编程基础32台州学院计算机系 应建健编2.1.3 窗体的事件窗体的事件6. Activate6. Activate事件事件事件事件当窗体由非活动窗体变为活动窗体时触发该事件。7. Pa
39、int7. Paint事件事件事件事件需要刷新窗体时发生该事件。当窗体的一部分或全部曾经消失在屏幕上,比如被另外的窗体遮盖,或被最小化,然后又被重新显示出来,这时就触发Paint事件。你可以设置窗体的AutoRedraw为True,让窗体自动刷新,但需要占有大量内存。 喳取纺从熟鉴呐舆蓬航含赵损房钝鸥嘘届魁番数龚东漾掀弊乏剃抱悸冯骏第2章VisualBasic编程基础第2章VisualBasic编程基础33台州学院计算机系 应建健编2.1.4 窗体的方法窗体的方法窗体常用的方法有:Move(移动)、Print(打印输出)、Cls(清除)、Show(显示)、Hide(隐藏)等。骇靛报涸虱苫羽恐胺
40、盆曲叉持慰暑阵遣楔转糟聪榨廊硬绥进很戮芭赏贱宇第2章VisualBasic编程基础第2章VisualBasic编程基础34台州学院计算机系 应建健编2.1.4 窗体的方法窗体的方法1. Move1. Move方法方法方法方法功能:将窗体移动到屏幕的新的位置。格式:窗体名.Move Left,Top,Width.Height其中Left、Top、Width、Height都是单精度数值型数据,代表窗体新的位置和大小,Left代表窗体左边缘到屏幕左边的距离,Top代表窗体上边缘到屏幕顶边的距离,Width代表窗体的宽度,Height代表窗体的高度。特别说明:格式中的中括号“”内的内容表示可以省略不写
41、,所以只有方法名Move和第一个参数Left是必须要写的,其余的都是可选的。烽蒜本囚斤瑟雹歼首肾隆赛臀藏律堪泉肄统的端热琢箕昌墟键颈典终哈刘第2章VisualBasic编程基础第2章VisualBasic编程基础35台州学院计算机系 应建健编【例2-4】 使用Move方法移动窗体,要求在程序运行时,当鼠标单击窗体,窗体将移动到屏幕的左上角,并改变窗体大小为屏幕大小的一半。新建窗体Form1,为窗体Form1的Click事件添加如下代码:Private Sub Form_Click() Move 0, 0, Screen.Width / 2, Screen.Height / 2End Sub请对
42、照Move方法的格式,我们看到,在本例的代码中,我们省略了窗体名,那么系统就默认为本窗体Form1,而后面的四个参数都没有省略,如果我们将代码改为Move 0, 0 省略了省略了WidthWidth和和HeightHeight参数,代表窗体的宽和高不做设置参数,代表窗体的宽和高不做设置,该代码的功能是将窗体移动到屏幕的左上角,但不改变窗体的宽和高。镣螟颠酝凉微莱琢法耐赊演歪模关弹便紫衣仪怖鸡咐矽唾警铭弘瑞匪吊桂第2章VisualBasic编程基础第2章VisualBasic编程基础36台州学院计算机系 应建健编 2. Print2. Print方法方法方法方法功能:在窗体上输出信息。格式:窗体
43、名.Print 输出项列表下面的代码可以在单击窗体时,显示窗体左上角在屏幕中的位置,以及屏幕的分辨率大小。Private Sub Form_Click() Print 当前窗体位置:, Left, Top Print 屏幕大小:, Screen.Width / 15, Screen.Height / 15End Sub注:代码中,屏幕宽度和高度都除以15,是将长度单位转化为像素,这里假定你的系统分辨率是默认设置的,否则程序将显示出不正确的分辨率。Print的详细用法在本章稍后一点讲述。促走柑蔑斧兰诫燎灾慧过帅敛樱菲罕程遮涧袒囱彰劈令狸抛融犬憎氦铺暑第2章VisualBasic编程基础第2章Vi
44、sualBasic编程基础37台州学院计算机系 应建健编 3. Cls3. Cls方法方法方法方法功能:清除窗体上显示的信息。格式:窗体名.Cls它还将当前坐标设为窗体内的左上角,即窗体的CurrentX和CurrentY属性都被设为0。 4. Show4. Show方法方法方法方法功能:显示一个窗体,使其在屏幕上可见,并处于活动状态。格式:窗体名.Show Modal该方法有一个可选参数,它有两种值:vbModal或vbModeless,如果不加参数,缺省为vbModeless。它的含义是:是否将窗体作为模式窗体来显示。当参数取vbModal时,要求用户必须对当前的窗体做出响应,才能继续执行
45、Show方法后面的程序代码。当不加参数或参数为vbModeless时,Show方法将窗体显示出来后,继续执行后面的代码。如果要显示的窗体事先没有被装入内存,系统将自动调用Load命令将窗体装入后再显示出来。逊隔翼拆摇匿笨磐艇瞧裔仆译松朽剔耀慕握众锑唾呆迟筷晃液职隋宝窜北第2章VisualBasic编程基础第2章VisualBasic编程基础38台州学院计算机系 应建健编2.1.4 窗体的方法窗体的方法5. Hide方法方法功能:隐藏指定的窗体,使其在屏幕上不显示,但不从内存中删除窗体。格式:窗体名.Hide当窗体被隐藏后,它的Visible属性被设为False。虽然窗体看不见了,但程序可以访问
46、到它。如果隐藏的是一个没有被加载的窗体,则将它加载到内存,但不显示出来。获淫卸滩逮瞬蛀钧酞保糠县读嗓啮茅烧几悲习唱矿氰镐鲸劲恰膝埠咸沁食第2章VisualBasic编程基础第2章VisualBasic编程基础39台州学院计算机系 应建健编2.1.5 多窗体多窗体1. 添加窗口添加窗口新建工程时,系统会自动创建一个窗体,如果我们要在程序中使用多个窗体,则需要继续创建新窗体。下面的例子演示了如何创建多个窗体,并利用Show、Hide等方法显示和隐藏窗体。 秘牌色照俭栈姻啄调耸磐密喂疯纠迫帘俊疙卜奠蹄残钒号监椎盛出膳瞻俘第2章VisualBasic编程基础第2章VisualBasic编程基础40台州
47、学院计算机系 应建健编【例2-5】 多窗体示例。步骤一,新建工程,此时自动生成窗体Form1。步骤二,添加新窗体。选择菜单“工程|添加窗体”,出现“添加窗体”对话框(图2-8),选择“窗体”图标后单击“打开”按钮,这时一个新窗体Form2被建立起来(图2-9)。图2-8 “添加窗体”对话框图2-9 窗体Form2被添加加燕毗房沂绘坞乒并谬棒脸穆越粪键蠕恳恃苫羹延睁菇矫槛顺灼侈栋丑当第2章VisualBasic编程基础第2章VisualBasic编程基础41台州学院计算机系 应建健编2.1.5 多窗体多窗体步骤三,为窗体Form1添加代码。让窗体Form1的界面设计窗口处于最前面,如果Form1
48、没有显示出来,可以在工程资源管理窗口中选择Form1,并选择“查看对象”按钮,即可显示Form1。鼠标双击Form1,出现Form1的代码窗口,选择Click事件,输入下列代码:Private Sub Form_Click() Form2.Show 显示窗体Form2End Sub稻触骏日看稀蝉黑蹿猪九簧忘痢就房肄扣铣约舞磐利境吭餐岳墟扁记蓉铬第2章VisualBasic编程基础第2章VisualBasic编程基础42台州学院计算机系 应建健编2.1.5 多窗体多窗体步骤四,运行程序,出现窗体Form1,用鼠标单击Form1,显示出Form2。两个窗体同时显示在屏幕上,并且发现两个窗体之间可以
49、互相切换步骤五,结束程序的运行,为窗体Form1的Click事件代码作如下修改:Private Sub Form_Click() Form2.Show Form1.Hide 隐藏窗体Form1End Sub疤肚妮绪踢壁翼瓣榷软冷姥肄仟酉吮栖满喧随汰胃怀哟艘吓峙眉曹起蹭贝第2章VisualBasic编程基础第2章VisualBasic编程基础43台州学院计算机系 应建健编2.1.5 多窗体多窗体选择窗体Form2,双击窗体Form2,出现Form2的代码窗口,选择Click事件,输入下列代码:Private Sub Form_Click() Form1.Show 显示窗体Form1 Unload
50、 Form2 关闭窗体Form2End Sub步骤六,运行程序,出现窗体Form1,单击Form1,出现窗体Form2,并隐藏了窗体Form1,再单击窗体Form2,窗体Form1又出现,同时窗体Form2被关闭。结束程序运行。我们发现,每个窗体都有各自的代码窗口,都有各自的事件代码。醉驳睛洲朋臣织罐文烂思副栋圆鲤恕粗荷掂掩飘雪徊锦栗赤嫁拟鼠膊蛾横第2章VisualBasic编程基础第2章VisualBasic编程基础44台州学院计算机系 应建健编2.1.5 多窗体多窗体2. 删除窗口删除窗口在工程资源管理窗口中,右击需要删除的窗体,在右键菜单中选择“移除”菜单项。3. 设置启动对象设置启动对
51、象如果一个工程内有多个窗体,在默认情况下,程序启动时,会自动装载第一个窗体,将其设为启动对象。如果要想改变工程“工程1”的启动对象,可以通过选择菜单“工程|工程1属性”来设置启动对象。珐放与末澎姓连狱选舷微耸仓虾绒玛盈映做摆傀迪样挂癌警卒詹挎伎胺麦第2章VisualBasic编程基础第2章VisualBasic编程基础45台州学院计算机系 应建健编2.1.6 窗体加载与卸载时触发的事件窗体加载与卸载时触发的事件窗体在加载与卸载时,将触发一系列的窗体事件,这些事件的触发遵循一定的次序,下一页的图2-10和图2-11分别指示了这些事件发生的次序。剑思灌烛装撮哟乾几河唤犀广泄舍前殴殿胡豢聪讹石疾党伴
52、著钎拐惨忆菇第2章VisualBasic编程基础第2章VisualBasic编程基础46台州学院计算机系 应建健编图2-10 窗体在加载过程中触发的事件图2-11 窗体在卸载过程中触发的事件蛆冠碴颐柱漓碟搂扣词祟焚霜其娱屡厚轰遭得捷校年约楚蹈入如蛙怔府貌第2章VisualBasic编程基础第2章VisualBasic编程基础47台州学院计算机系 应建健编2.2数据类型、常量与变量数据类型、常量与变量2.2.1 数据类型 2.2.2 常量2.2.3 变量茫呕绥点苗长鞍初泛婶纱贤剐旨尾洞盾磐管壤胰务套拓扭硒呢藕恭背橡战第2章VisualBasic编程基础第2章VisualBasic编程基础48台州
53、学院计算机系 应建健编2.2.1 数据类型数据类型 数据是程序处理的对象,是软件的重要组成部分。比如,在数学计算时,我们需要用到数值型数据,它们可以参加数学运算;在处理文本时,我们又要用到字符串型数据,它们被当做文字来处理,不参加加减乘除等运算;在条件判断时,我们还需要用到逻辑型数据,它们的结果是对和错,即真和假;等等。数据类型决定了Visual Basic用怎样的方式去存储它们,以及拿它们作怎样的操作。本节内容较详细地列出了Visual Basic中提供的数据类型,除了对常用数据类型的解释外,本节的大部分内容可以作为大家日后编程时的参考资料,并不需要立刻掌握全部内容,应在使用的过程中逐步熟悉
54、它。求幽熔烧始钡流无文武蓝酥澈共乔拧锰活堂嘱看旱瓶锌计燎扯勇方涣刻赘第2章VisualBasic编程基础第2章VisualBasic编程基础49台州学院计算机系 应建健编数据数据类型型名称名称字字节数数范范围字字节型型BtyeBtye1 1 0 0255255整型整型IntegerInteger2 2-32768-327683276732767长整型整型 LongLong4 4-2,147483648-2,14748364821474836472147483647单精度浮点型精度浮点型SingleSingle4 4-3.40282310-3.402823103838-1.40129810-1.
55、40129810-45-451.401298101.40129810-45-453.402823103.402823103838(6(6位有效数字位有效数字) )双精度浮点型双精度浮点型DoubleDouble8 8-1.7976931348623210-1.7976931348623210308308-4.9406564584124710-4.9406564584124710-324-3244.94065645841247104.9406564584124710-324-3241.79769313486232101.7976931348623210308308(15(15位有效数字位有效数字
56、) )变长字符串型字符串型StringString每个字符串可以存放每个字符串可以存放0 0到到2020亿个左右的字符个左右的字符定定长字符串型字符串型String*sizeString*sizesizesize1 1到到6553565535个字符个字符布布尔尔型型( (逻辑型型) )BooleanBoolean2 2TrueTrue或或FalseFalse日期型日期型DateDate8 81/1/1001/1/100到到12/31/999912/31/9999货币型型CurrencyCurrency8 8-922337203685477.5808-922337203685477.580892
57、2337203685477.5807 (922337203685477.5807 (小数点后四位小数点后四位) )对象型象型ObjectObject4 4任何任何对象的引用象的引用变体型体型VariantVariant可以存放数可以存放数值和字符串,若存放数和字符串,若存放数值,占,占1616个字个字节,最大范,最大范围与双精与双精度浮点型相同;若存放字符串,与可度浮点型相同;若存放字符串,与可变字符串字符串长度相同度相同表表2-3 Visual Basic中的标准数据类型中的标准数据类型危妄声掌礼降治扮脉硬赚愿趋善槽镍哈掠秋事沥岸舆库挥游顷卉聪厘徽缄第2章VisualBasic编程基础第2章
58、VisualBasic编程基础50台州学院计算机系 应建健编2.2.1 数据类型数据类型表2-3列出了Visual Basic提供的标准数据类型,表中“名称”列用于标识变量的数据类型,“字节数”表示数据占用的内存大小。在实际应用中选取合适的数据类型来存储数据,例如,一门功课的成绩表示范围是0到100的整数,那么可以用整型变量来存放;如果要存放全班同学的一门功课的平均分,由于有小数,所以要用单精度浮点型变量来存放;对于一个城市的人口数目来说,则需要长整型变量来存放;对于高精度的数学运算,可使用双精度浮点型的变量来存放数据。狡作拔囤挂往瘁诀批从停绞田俩六掺痰酉巳隧净功绷那迪噶码本苍撼抱方第2章Vi
59、sualBasic编程基础第2章VisualBasic编程基础51台州学院计算机系 应建健编2.2.2 常量常量常量指在程序中不变的数值。常量分为:数值常量、字符串常量、布尔常量、日期常量等。表2-4列出了这些常量的写法格式。类型型格式格式示例示例数数值常量常量数数值987987,3.141593.14159,-5.1E-2-5.1E-2字符串常量字符串常量用双引号用双引号括起来括起来VBVB,123123, 你好!你好! ,#$=#$=布布尔尔常量常量仅True(True(真真) )和和False(False(假假) )两个两个值TrueTrue,FalseFalse日期常量日期常量用用#
60、#号括起来号括起来#12/31/2009#12/31/2009#12/31/2010 23:12:54#12/31/2010 23:12:54#表2-4 常量的格式埋辊旭公杭短霞滥饥柱弯流分镰段谓躇缺蹿然憨嘲韶盆刁遥捶奇澜潭阔针第2章VisualBasic编程基础第2章VisualBasic编程基础52台州学院计算机系 应建健编 1. 1. 数值常量数值常量数值常量数值常量(1)按照数学中的惯用写法,如:987,3.14159,-1,0,-120.3等。(2)浮点数还可以写成指数形式,如1.234E2,表示1.234102,“E”后面是指数部分,指数只能是整数,也可以用“e”代表指数部分开始。
61、又如:6e-2,-5.1E-2,1E8,314.159E-2等。(3)由于数值数据的类型有多种(见表2-3),存储这些数据所需的存储空间大小不同,如果超过了规定的取值范围,就会产生“溢出”(Overflow)错误。如将100000存入一个整型变量中,就会溢出。(4)Visual Basic中一般采用十进制数来表示数值大小,但有时候也会使用十六进制数(数值前加前缀&H)或八进制数(&O)来表达数值大小,如十六进制数&H10与十进制数16大小相等,八进制数&O17与十进制数15大小相等。尿撅硕轰类溯珊回贬缀孺夫框戊幽耶祷设糕馋券仁坯钞碍峰催冯诵骂绿绚第2章VisualBasic编程基础第2章Vis
62、ualBasic编程基础53台州学院计算机系 应建健编2. 2. 字符串常量字符串常量字符串常量字符串常量字符串常量是用双引号括起来的一串字符,如:VB,123,你好!,#$=等。3. 3. 布尔常量布尔常量布尔常量布尔常量布尔常量也叫逻辑常量,是Boolean类型的数据,它只有两个值,分别是True(真)和False(假)。当当把数值常量转换成把数值常量转换成BooleanBoolean型时,型时,0 0被转换成被转换成FalseFalse,非,非0 0被转换成被转换成TrueTrue;反之,将;反之,将BooleanBoolean型型常量转换成数值时,常量转换成数值时,FalseFalse
63、被转换成被转换成0 0,TrueTrue被转被转换成换成-1-1。4. 4. 日期常量日期常量日期常量日期常量日期常量用来表示日期和时间,用#号括起来,如:#12/31/2009#,#12/31/2010 23:12:54#等。Visual Basic支持多种格式的日期和时间写法,输出格式由Windows设置的格式决定。性寐捎玖权仕存妓羡翔翻拔瘩充垢怜阶升伶耐务搐颁戍服别失亦拧龟螺趁第2章VisualBasic编程基础第2章VisualBasic编程基础54台州学院计算机系 应建健编2.2.2 常量常量 5. 5. 符号常量符号常量符号常量符号常量当程序中多处出现某个数据时,为了便于程序的修改
64、和阅读,可以给它赋予一个名字,下面的程序代码就可以用该名字来代表这个数据,这个名字就叫作符号常量。格式:Const = 例如,有一段代码Private Sub Command1_Click() Print 3.14 * 3 * 3 求半径为3的圆面积 Print 3.14 * 5.2 * 5.2 求半径为5.2的圆面积End Sub其中3.14在多处使用,为了方便阅读和修改,我们可以使用符号常量来替代它(见下页)。尚从蠢挨纯捉褒门翻欧纲霉帖律娩矮午老黔佯住土灿捎鸟瓤瘩钉榜挟邑婆第2章VisualBasic编程基础第2章VisualBasic编程基础55台州学院计算机系 应建健编2.2.2 常量
65、常量Private Sub Command1_Click() Const pi = 3.14 将3.14定义为符号常量pi Print pi * 3 * 3 Print pi * 5.2 * 5.2End Sub它的优点是很明显的,今后如果发现圆周率取3.14的精度不够,需要提高精度,只要将常量定义的语句行修改为Const pi = 3.14159即可,而无需修改程序的其他部分,这样还可以避免多次修改出现打字错误或漏改。 剪坪渠悉尖撼耶凡槛攒脆磅敲骆结峙吕辈帜忠舱比屈扼售漾索很余说摩腾第2章VisualBasic编程基础第2章VisualBasic编程基础56台州学院计算机系 应建健编2.2.
66、3 变量变量用来在程序中存储数据,在程序运行过程中可以发生改变的量,我们称为变量。变量是计算机编程中的一个重要概念。它是一个可以存储值的字母或名称。创建计算机程序时,可使用变量来存储数值,例如建筑物的高度,或者存储单词,例如人的名字。简单地说,可使用变量表示程序所需的任何信息。使用变量有三个步骤:(1)声明变量。告诉程序要使用的变量的名称和种类。(2)给变量赋值。赋予变量一个要保存的值。(3)使用变量。检索变量中保存的值,并在程序中使用它。 每个变量都有唯一的变量名字、相应的数据类型和使用范每个变量都有唯一的变量名字、相应的数据类型和使用范围围。在程序中,通过声明来定义变量,通过赋值语句来给变
67、量一个具体的值,通过变量名字来引用该变量的值。腆鸵储根峙普韶稼肛测癣逃财患随啊亚虽馆无栗谆戒谆京傍注吴洞落眺旱第2章VisualBasic编程基础第2章VisualBasic编程基础57台州学院计算机系 应建健编1. 1. 声明变量声明变量声明变量声明变量声明变量时,必须决定要为它取一个什么样的名称以及要为它分配什么数据类型。你可以为变量取任何名称,但要符合下列规则:(1)以字母开头(不分大小写),由字母、数字和下划线组成;(2)长度不超过255个字符;(3)变量名不能和保留字、符号常量名、函数名等同名;(4)在其有效范围内必须是唯一的。如a、Sum、x1、Total_Candy等都是合法的变
68、量名,而1a、i+j则不能作为变量名。注:使用能描述变量所保存内容的名称时,代码的易读性就会提高。例如,可以将保存成绩的变量命名为 cj(拼音Chengji的缩写)。恐谭迂空腥机扒妨馈肇台帮绳牛乏瘴砷躁扮狸趟凑晚髓艾笺纵媒朋酋甭胯第2章VisualBasic编程基础第2章VisualBasic编程基础58台州学院计算机系 应建健编声明变量时使用的是 Dim 和 As 关键字,如下所示。Dim a As Integer这行代码告诉程序您要使用一个名为a的变量,并且希望它是存储整数(Integer数据类型)的变量。因为a是一个Integer类型的变量,所以它只能存储整数。例如要存储42.5,可以使
69、用Single或Double数据类型。如果要存储一个单词,需使用String数据类型。如果声明为Boolean数据类型,则它可存储 True 或 False 值。下面是关于如何声明变量的更多示例。Dim i As IntegerDim x As DoubleDim aName As String也可以在一个Dim语句中声明多个变量:Dim k As Boolean, j As Integer, cj As Single每个变量声明之间用“,”分割,而最后一个变量声明后没有符号。在实际操作时注意,符号“,”是英文半角字符,不是中文的全角逗号。渺挤们睫钱庸痔达茧唉味铭慧弓堆吐擦厨檬黑限答卸建翔欠究
70、肮济烛烦猫第2章VisualBasic编程基础第2章VisualBasic编程基础59台州学院计算机系 应建健编2.2.3 变量变量2. 给变量赋值给变量赋值 使用“=”(该符号有时称作“赋值运算符”)给变量赋值,如下例所示。a = 42这行代码有一个值42,把它存储在先前声明的名为a的变量中。垦粉勘襟牌邯摧顶化酒招版巾痊缕磷钉禄便速棱铁馋哆各牵雪遏乃恢拼拉第2章VisualBasic编程基础第2章VisualBasic编程基础60台州学院计算机系 应建健编 3. 3. 使用变量使用变量使用变量使用变量【例2-6】 已知圆半径,显示圆面积。新建工程,在窗体Form1上添加一个命令按钮Comma
71、nd1,为它添加下列代码:Private Sub Command1_Click() Dim r As Single, s As Single 声明变量r,s r = 1.5 给变量r赋值 s = 3.14159 * r * r 使用r,计算圆面积,赋值给变量s Print s 在窗体上显示变量s的值End Sub给变量赋值时需要注意变量的数据类型,如果部分代码改为Dim r As Integerr = 1.5则可能会出现不是你预想的结果,因为变量r被声明为整数,而1.5是浮点数,不能在r中存放,系统将对1.5进行舍入转化为整数2后存入变量r中,从而失去了精度。 轴乍敷白妈椎膝松竖栽衅挺诱巫镰贝
72、蛔琢吱美浴屁戴刺务淤或贾蒸粉慈悼第2章VisualBasic编程基础第2章VisualBasic编程基础61台州学院计算机系 应建健编 4. 4. 变量的初始值变量的初始值变量的初始值变量的初始值在程序中声明了变量后,变量将自动获取一个初始值,数值类型变量的初始值为0,变长字符串的初始值为空字符串(即),定长字符串用空格填充,逻辑性变量的初始值为False。 5. 5. 强制变量声明强制变量声明强制变量声明强制变量声明如果在程序中没有声明变量,但是又使用了这个变量,这是一种不好的习惯,所以变量一定要“先声明,后使用”。为了能让Visual Basic检查出这种情况,可以选择菜单“工具|选项”,
73、在出现的对话框中,选择“编辑器”选项卡,勾选“要求变量声明”(图2-12),这样今后在打开新的代码代码窗口时,会在顶部自动添加语句“Option Explicit”(图2-13),Visual Basic会检查代码中用到的变量是否经过声明。当然,你也可以自己在代码窗口顶部手工输入“Option Explicit”,起到一样的效果。 惕沾部仑轮身艳拯陆凶故匀喝括玉瓜腋韭瞩克拷靛瓜图盏峨戎澈蜒哲耘疼第2章VisualBasic编程基础第2章VisualBasic编程基础62台州学院计算机系 应建健编图2-12 选择“要求变量声明”图2-13 用“Option Explicit”语句强制变量声明江肿
74、回子月辐疾烽谁颠耸踊丢乃骤拧切开暖奥肛痈堪诌桨臻攻挣横啦吃犬第2章VisualBasic编程基础第2章VisualBasic编程基础63台州学院计算机系 应建健编2.3 Print语句和赋值语句语句和赋值语句2.3.1 语法描述规则2.3.2 Print语句2.3.3 赋值语句胁届些褂店联袍誉叼措虚握窍佯晚亨足链询曳涨商阮桔仙卜令饯篱妇古芯第2章VisualBasic编程基础第2章VisualBasic编程基础64台州学院计算机系 应建健编2.3.1 语法描述规则语法描述规则为了便于解释语句、方法和函数的使用格式,我们一般采用约定的语法描述规则来描述,里面包含了一些约定的符号。如声明变量语句的
75、格式是:Dim As , As 符号解释如下:(1)“”表示必选项。(2)“”表示可选项。(3)“”和“|”表示多选一项。(4)“”表示重复。蔫挫丰洱最移导昼档步韦汞狼夕赵坝壤诛淘莲酣赫著原刑叮较仆狞块元笔第2章VisualBasic编程基础第2章VisualBasic编程基础65台州学院计算机系 应建健编2.3.2 Print语句语句功能:可以在窗体上输出表达式的值,也可以在其他图片对象或打印机上输出信息。格式:.Print ,|;格式说明:(1)可以是窗体、图片框或打印机,如果省略则在当前窗体上输出。(2)Print后跟,输出项可以只有一个,也可以多个,甚至可以没有输出项。如果输出项有多个
76、,则输出项之间必须有“,”或“;”。在实际编程时必须注意“,”和“;”必须使用英文半角字符,绝对不能使用中文全角标点。(3)“,”代表当前位置移动到下一个制表位,每个制表位间隔14个字符位置;而“;”表示当前位置不变动;语句的最后如果没有这两个符号,表示当前位置定位到下一行的行首。注:当前位置的含义是下一次默认输出位置。揖想将操矽编厢废霓固魁斧挝煎多腐表溯但香乐古麦祟熙焊易蝉脆瘪峡联第2章VisualBasic编程基础第2章VisualBasic编程基础66台州学院计算机系 应建健编【例2-7】 Print语句的输出格式示例。Private Sub Form_Click() Print 123
77、456789+123456789+123456789+123456789+123456789+ 输出位置 Print a, b, c, d 关注逗号的作用 Print 123, 456, -789, 3.14 数值第一个输出为符号,正数的符号为空格 Print 123; 456; -789; 3.14 关注分号的作用,数值后跟一个空格 Print 123; 456; abc; True; 关注行末的分号的作用 Print 123; 456; abc 可以看到456前后都有空格 Print 换行 Print 123456, abc 制表位的对齐作用 Print , 123 单独逗号都能起作用En
78、d Sub运行该程序,点击窗体,输出如图2-14(下页)所示。从例2-7的输出结果可以看到:(1)输出数值后自动输出了一个空格,输出正数时不显示正号,而是以空格代替。(3)输出字符串则按照字符串内容原样输出,前后都不添加空格。(3)输出逻辑型数据直接输出“True”或“False”。 汪甥霸九乙察晚属舷指利凰侮潘厨冤弹手瑰械朋苛鸥都爱步境碎浅付蚌鉴第2章VisualBasic编程基础第2章VisualBasic编程基础67台州学院计算机系 应建健编Private Sub Form_Click()Private Sub Form_Click() Print 123456789+123456789
79、+123456789+123456789+123456789+ Print 123456789+123456789+123456789+123456789+123456789+ Print a, b, c, d Print a, b, c, d 关注逗号的作用关注逗号的作用关注逗号的作用关注逗号的作用 Print 123, 456, -789, 3.14 Print 123, 456, -789, 3.14 数值第一个输出为符号,正数的符号为空格数值第一个输出为符号,正数的符号为空格数值第一个输出为符号,正数的符号为空格数值第一个输出为符号,正数的符号为空格 Print 123; 456; -
80、789; 3.14 Print 123; 456; -789; 3.14 关注分号的作用,数值后跟一个空格关注分号的作用,数值后跟一个空格关注分号的作用,数值后跟一个空格关注分号的作用,数值后跟一个空格 Print 123; 456; abc; True; Print 123; 456; abc; True; 关注行末的分号的作用关注行末的分号的作用关注行末的分号的作用关注行末的分号的作用 Print 123; 456; abc Print 123; 456; abc 可以看到可以看到可以看到可以看到456456前后都有空格前后都有空格前后都有空格前后都有空格 Print Print 换行换行
81、换行换行 Print 123456, abc Print 123456, abc 制表位的对齐作用制表位的对齐作用制表位的对齐作用制表位的对齐作用 Print , 123 Print , 123 单独逗号都能起作用单独逗号都能起作用单独逗号都能起作用单独逗号都能起作用End SubEnd Sub图2-14 例2-7的输出结果塞俗丢失随桃蛆招确六亿网卖证呢杠扑椭谱钓摸邵冒忿衡汝旅病圭岛第譬第2章VisualBasic编程基础第2章VisualBasic编程基础68台州学院计算机系 应建健编我们对例2-6进行修改,同样的题目,代码改为:Private Sub Command1_Click() Di
82、m r As Single, s As Single r = 1.5 s = 3.14159 * r * r Print 半径为:; r, 面积为:;s 修改为输出文字信息 Print r=; r, s=; s 换种形式再显示一次End Sub运行结果如图2-15所示。图2-15 修改例2-6后的输出结果脓汁嘎榨匆买转录司雾灼冻垮筋买象劣城乏瘤握所猿艾伙琼焰传蚤挝鲍欠第2章VisualBasic编程基础第2章VisualBasic编程基础69台州学院计算机系 应建健编2.3.3 赋值语句赋值语句功能:计算出表达式的值,给变量或控件属性赋值。格式1: = 格式2:. = 格式说明:格式1是给变量
83、赋值,格式2给控件属性赋值,如果控件名省略,则给当前窗体的属性赋值。程序将先计算“=”号右边的表达式的值,然后将值赋给“=”号左边的变量或控件属性,但要注意以下几点:妥朗哎耻域踩投罕痰袍畸便咙娜践愚稚噶现锤往拯肃踞米享躯株配哎培进第2章VisualBasic编程基础第2章VisualBasic编程基础70台州学院计算机系 应建健编(1)当为数值变量赋值时,表达式的值不能超出数值变量的数值范围,否则出现溢出错误。如Dim a As Integer, f as Singlea = 123456 整数溢出f = 1.23E+50 单精度浮点数值溢出(2)当把结果为浮点型的表达式赋值给整型变量时,将作
84、舍入化为整型数后再赋值给整型变量。如Dim a As Integera = 1.2 效果等同于 a = 1注意:对纯小数部分恰为0.5的数,舍入的规则是单进双舍,如2.5舍入后为2,3.5 舍入后为4。(3)任何类型的表达式都可以向字符串变量赋值。如Dim s As Strings = 123 将数值123转化为字符串123后再赋值给变量s 啄戮傍拉椿恿唉辫阮藻锭病萌笑痞苔取缀功手份思操挝烁龄钨析绞奄道痞第2章VisualBasic编程基础第2章VisualBasic编程基础71台州学院计算机系 应建健编2.4运算符、表达式、常用内部函数运算符、表达式、常用内部函数2.4.1 算术运算符与算术
85、表达式2.4.2 字符串运算符与字符串表达式2.4.3 关系运算符与关系表达式2.4.4 逻辑运算符与逻辑表达式2.4.5 常用的内部函数2.4.6 InputBox函数和MsgBox函数秋停叉旁堵埔娟阵示究三饥龚蛛甫溜草潭义六挑破狈旁您枕指临佩宵湘姜第2章VisualBasic编程基础第2章VisualBasic编程基础72台州学院计算机系 应建健编2.4.1 算术运算符与算术表达式算术运算符与算术表达式 1. 1. 算术运算符算术运算符算术运算符算术运算符表2-5列出了Visual Basic中的算术运算符。其中整除运算()和求余数运算(Mod)时只能对整型数据进行,如果遇到运算符两边的操
86、作数为浮点数,则自动把它转换成整型数,然后进行整除和求余数运算。运算符运算符名称名称说明明举例例 乘方乘方求乘求乘幂2323值为8 8,-23-23值为-8-8* *乘法乘法求求积2*32*3/ /除法除法求商,求商,结果果为浮点型浮点型7/27/2值为3.53.5 整除整除整除,返回商的整数部分整除,返回商的整数部分7272值为3 3,7.231.77.231.7值为3 3ModMod求余数求余数求模,返回余数求模,返回余数7 Mod 27 Mod 2值为1 1,7.23 Mod 1.77.23 Mod 1.7值为1 1+ +加法加法求和求和2+32+3- -减法、取减法、取负求差或求相反数
87、求差或求相反数2-32-3,-2-2,-a-a表2-5 算术运算符凿骆层傍由儒栗筑徘缓窜宇帆谁账饵扑每响码铡找射奋坞聊娄坠衍披绑浊第2章VisualBasic编程基础第2章VisualBasic编程基础73台州学院计算机系 应建健编2.4.1 算术运算符与算术表达式算术运算符与算术表达式2. 2. 算术运算符的优先级算术运算符的优先级算术运算符的优先级算术运算符的优先级当在一个表达式中出现多个运算符时,将按照运算符优先级的高低来决定先进行那种运算。算术运算符的优先级从高到低排列是:(指数运算)(取负-)(乘*、除/)(整除)(求余Mod)(加+、减-)乘、除为同级运算符,加、减也是同级运算符,
88、同级运算从左向右进行。可以通过在表达式中添加括号来改变表达式的求值顺序。痕饵垒告瘴将肆吠咋慨伴男碌茂盒膝毙海拼宫氢咙腆窍搂丙娘老催某顶蒙第2章VisualBasic编程基础第2章VisualBasic编程基础74台州学院计算机系 应建健编2.4.1 算术运算符与算术表达式算术运算符与算术表达式3. 算术表达式算术表达式表达式由常量、变量、运算符、函数和圆括号按一定的规则组成,通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。书写上要注意与数学表达式的区别:(1)表达式中,乘号不能省略。(2)括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。 袒吵朝藻泄瓶皆献绳顺妙挪宠贼踏衷涪荷信
89、澜到蹈哗墩喻瓢交拄王蠢工半第2章VisualBasic编程基础第2章VisualBasic编程基础75台州学院计算机系 应建健编2.4.2 字符串运算符与字符串表达式字符串运算符与字符串表达式字符串运算符有两个:“+”和“&”,用于连接符号两边的字符串表达式。如ABC & def 计算结果为ABCdefABC + def 计算结果也为ABCdef但是,“&”运算符可以连接非字符串类型的数据,它将非字符串数据自动转换成字符串后再连接。如ABC & 123 计算结果为ABC123而“+”运算符则不能,如下面是错误的:ABC + 123 出现类型不匹配错误注意:书写时“&”运算符前后都要加空格,否则
90、Visual Basic有可能无法正确识别。弧淳宦细瞧舶私浴敲瓣蚂幅材琐花倡涣趾嘴阂稻曲戈甘转婉胺枷邪乎鼠中第2章VisualBasic编程基础第2章VisualBasic编程基础76台州学院计算机系 应建健编2.4.3 关系运算符与关系表达式关系运算符与关系表达式关系运算符也叫比较运算符,有、=、=、六种,用于判断符号两边的表达式是否满足结果,运算结果只有两个值True或False。贱永桔版澄莎狗袒犯员降偿碧马敲液涧珊则趁楚斡劝鹤咙糖蛛丢绎剪洞靛第2章VisualBasic编程基础第2章VisualBasic编程基础77台州学院计算机系 应建健编2.4.3 关系运算符与关系表达式关系运算符与
91、关系表达式运算符运算符说明明举例例 小于小于2323值为TrueTrue,3232值为FalseFalse=小于或等小于或等于于2=32=3值为TrueTrue,2=22 大于大于#12/20/2009#01/12/2010#12/20/2009#01/12/2010#值为FalseFalse,aAaA值为TrueTrue=大于或等大于或等于于ababcababc值为FalseFalse,a=Abca=Abc值为TrueTrue= =等于等于a=Aa=A值为FalseFalse,abc=abcabc=abc值为TrueTrue不等于不等于2323值为TrueTrue表2-6 关系(比较)运算符
92、擅携仁烤对沉略硫敷聚仕荚佑困拼肤窑远精住乔呵填煽渴思岩脖补害苯晰第2章VisualBasic编程基础第2章VisualBasic编程基础78台州学院计算机系 应建健编在表2-6中已经举了数值数据比较、字符串数据比较和日期数据比较的例子,它们的比较规则是:(1)数值数据按照它们的大小进行比较。(2)日期类型数据按照日期的先后进行比较。(3)字符串类型数据按照它们的ASCII码值的大小进行比较:先比较两个字符串的第1个字符的ASCII码值大小,若相等则比较它们的第2个字符的ASCII码值,依此类推,直到第一次出现了不相同的字符,哪个字符的ASCII码值大,就是哪个字符串大,如abcabbc值为Tr
93、ue;或者一个字符串结束,而另一个字符串还有字符没有参加比较,则较长的字符串较大,如abcab值为True;或者两个字符串完全一样,则这两个字符串相等,如abc=abc值为True。关系表达式也叫比较表达式,即由关系运算符连接的表达式,如a=b,a+b3,i Mod 5=0等。境萌傻末月狈孵学萤双啮笨皱订仰只式惭降税召客蔑装脸耳溶潦蛋脉踩过第2章VisualBasic编程基础第2章VisualBasic编程基础79台州学院计算机系 应建健编2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 常用的逻辑运算符有三种:And,Or,Not。如表2-7所示。运算符运算符名称名称说明和明和举例例
94、AndAnd与与当两当两边的表达式同的表达式同时为真(真(TrueTrue)时,结果才果才为真,否真,否则为假假(FalseFalse)。如)。如21 And 21 And 21 Or 2321 Or 23值为TrueTrueNotNot非非对右右边的表达式的表达式进行行逻辑否定运算:原来否定运算:原来为真(真(TrueTrue)的,)的,值为假(假(FalseFalse);原来);原来为假的,假的,值为真。如真。如Not 21Not 21值为FalseFalse表2-7 逻辑运算符跨酋丫袜酪拂闹循牺兽廷剩亿颈伍囱酒崇龚将挛农滦罩祭锭呜姑痴暗赵攒第2章VisualBasic编程基础第2章Vis
95、ualBasic编程基础80台州学院计算机系 应建健编2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式它们的优先级是:Not最高,And次之,Or最低。当它们同时出现在一个表达式中时,先进行Not运算,再进行And运算,后进行Or运算。算术运算符、关系运算符和逻辑运算符的优先级关系为:算术运算符优先级最高,关系运算符优先级次之,逻辑运算符优先级最低。逻辑表达式也叫布尔表达式,它的值为True或False。关系表达式也是逻辑表达式。赁片茅舆试饭米泼遂胰趣伍朵梳铂饿砌熟侦扯孪莱奎酉稗女讼捌屿株莱扔第2章VisualBasic编程基础第2章VisualBasic编程基础81台州学院计算机系
96、应建健编2.4.4 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式【例2-8】 根据描述写出逻辑表达式。“x为正数”,写出逻辑表达式:x0“x不为0”,写出逻辑表达式:x0“-1a-1 And a0“a,b至少有一个不为0”,写出逻辑表达式:a0 Or b0“-1a-1 And a1)或写成a=1亢讨澡馏疼汁戎静斜饲牵抚庸原呀泄芋鞋嚎品皋璃鹏峡陵指某致曹蔬鸭鼻第2章VisualBasic编程基础第2章VisualBasic编程基础82台州学院计算机系 应建健编2.4.5 常用的内部函数常用的内部函数Visual Basic提供有大量的内部函数,内部函数是Visual Basic中设置好的具有特定
97、功能的函数,通常带有一个或几个参数,并返回一个返回值。通过使用内部函数,可以方便地完成各种复杂运算。 秀瑰透韵仁辐钱泞秘抬秸吾胀曹术厉娶侯丧遣姨骚埃析崔犯屈补终泻泛砚第2章VisualBasic编程基础第2章VisualBasic编程基础83台州学院计算机系 应建健编1. 1. 数学函数数学函数数学函数数学函数(1)Abs(x):返回x的绝对值。如Abs(-3.1)返回3.1。(2)Sqr(x):返回x的算术平方根。即求x0.5。如Sqr(9)返回3。(3)Int(x):取整函数,返回不大于x的最大整数。如Int(9.8)返回9,Int(-9.8)返回-10。(4)Fix(x):返回x的整数部
98、分。如Fix(9.8)返回9,Fix(-9.8)返回-9。(5)Round(x,n):按小数位数四舍五入,参数n为小数位数。如Round(3.14159,2)返回3.14。(6)Exp(x):求ex(e为自然对数的底)。(7)Log(x):返回x的自然对数。(8)Sgn(x):符号函数,取x的符号值。当x大于0时,返回1;当x小于0时,返回-1;当x等于0时,返回0。焙甲鱼旧耙隔葬缩贪毗摊捷筑舀菇柏腮辨瘫芭昏功伪焦吁脾宛罪者弱鸭枫第2章VisualBasic编程基础第2章VisualBasic编程基础84台州学院计算机系 应建健编2.4.5 常用的内部函数常用的内部函数(9)三角函数:Sin(
99、x)、Cos(x)、Tan(x),反正切函数Atn(x)。三角函数以“弧度”为单位,如Sin(3.14159265/2)返回1。另外,Visual Basic中没有其他的三角函数,其他三角函数可以通过上面三个三角函数进行计算得到,而其他的反三角函数可以通过反正切函数进行计算得到。如求x的余切值可以表示为1/Tan(x),求x的反正弦函数可以通过计算Atn(x/sqr(1-x*x)得到。内狐戍吩诞帖蘸雨授妨锡谊之笑奴毗蒲虐悦蛆獭邑担辙巷苟仇钟挝把淡埃第2章VisualBasic编程基础第2章VisualBasic编程基础85台州学院计算机系 应建健编 2. 2. 字符串函数字符串函数字符串函数字
100、符串函数(1)Len(x):返回字符串x的长度(字符个数)。如Len(学习Vb)返回 4。(2)取子串函数:Left(x,n) :返回字符串x最左边n个字符所组成的字符串。Right(x,n):返回字符串x最右边n个字符所组成的字符串。Mid(x,m,n):返回字符串x的第m个字符开始的n个字符所组成的字符串。如字符串s=abcdef,则Left(s,2)返回ab,Right(s,2)返回ef,Mid(s,2,3)返回bcd。(3)去空格函数:LTrim(x):返回去掉字符串x左边空格后的字符串。RTrim(x):返回去掉字符串x右边空格后的字符串。Trim(x):返回去掉字符串x左右两边空格
101、后的字符串如字符串s= abc ,则LTrim(s)返回abc ,RTrim(s)返回 abc,Trim(s)返回abc。卿咳弯蛹案社垂渗腐恒揖藻啤廊建凶帮灼梢鸳助革傅老雪键壹痘修义继狰第2章VisualBasic编程基础第2章VisualBasic编程基础86台州学院计算机系 应建健编(4)大小写转换函数:LCase(x):返回将字符串x中所有大写字母转换为小写后的字符串。UCase(x):返回将字符串x中所有小写字母转换为大写后的字符串。如字符串s=abCDe,则Lcase(s)返回abcde,UCase(s)返回ABCDE。(5)Space(n):返回由n个空格组成的字符串。如Space
102、(3)返回 。(6)String(n,x):返回由n个首字符组成的字符串。如String(3,A)返回AAA。(7)Instr(x,y):搜索子串函数,返回字符串y在字符串x中首次出现的位置,找不到则返回0。如Instr(abcdef,cd) 返回3。隶秃憾贿勾西厂睦泅乒物蹄虽三什蜗凹勘卯观休娃欧风狄镀俞顿迹怯冉哎第2章VisualBasic编程基础第2章VisualBasic编程基础87台州学院计算机系 应建健编2.4.5 常用的内部函数常用的内部函数 3. 3. 日期和时间函数日期和时间函数日期和时间函数日期和时间函数(1)Date:返回系统的当前日期。(2)Time:返回系统的当前时间。
103、(3)Now:返回系统的当前日期、时间。(4)Year()、Month()、Day()、Weekday():分别返回指定日期的年份、月份、日号、星期序号(从星期日开始数)。如Year(2010-3-4)或Year(#3/4/2010#)将返回2010;Month(Date)将返回Date的月份,即系统当前日期的月份;Day(Now)将返回Now的日号。(5)Hour()、Minute()、Second():分别获取指定时间的小时数、分钟数、秒数。如Hour(14:33:44)返回14,Minute(Now)对Now取分钟数,即返回系统当前时间的分钟数,Second(Time)对Time取秒数。
104、鹿皂世疑塌卢厂妒膨旬甭瓤奠沂柒跋赦坊矫稠输贴工母爷卒埋癌首蓑们育第2章VisualBasic编程基础第2章VisualBasic编程基础88台州学院计算机系 应建健编2.4.5 常用的内部函数常用的内部函数 4. 4. 转换函数转换函数转换函数转换函数(1)Val(x):将字符串x中的最左边的数字串转换成数值。如Val(23.4Ab)返回23.4,Val(a23)返回0。(2)Str(x):将数值x转换成字符串。如果x是正数,则将符号位用空格代替,如Str(123.45)返回 123.45(字符串中第一个字符为空格),Str(-123.45)返回-123.45(字符串中没有空格)。(3)Asc
105、(x):返回字符串x首字符的ASCII值。如 Asc(A)返回65。(4)Chr(x):返回ASCII值为x的字符。如Chr(65)返回A。蛀闷音幢希镁蛇畅悔瞧烁标双如说礁唁赘篇军差质库窿秘乞盐汇蔗惕毫弥第2章VisualBasic编程基础第2章VisualBasic编程基础89台州学院计算机系 应建健编2.4.5 常用的内部函数常用的内部函数 5. 5. 随机函数随机函数随机函数随机函数RndRnd与随机数语句与随机数语句与随机数语句与随机数语句(1)Rnd函数:得到一个01(不包含1)的随机数,它是一个单精度数值。(2)Randomize语句:初始化随机函数发生器。【例2-9】 新建窗体,
106、为窗体的Click事件添加以下代码:Private Sub Form_Click() Print Rnd 在窗体上显示一个随机数End Sub运行程序,用鼠标单击窗体,就会显示出一个随机数,接着多单击窗体几次,显示出一系列没有规则的数值。 说螟孙某冠襟蛔俐售憨商亮粱襟抠蹄狡伟秆嫁材纱肚谅讳齿称远檄闷棉宪第2章VisualBasic编程基础第2章VisualBasic编程基础90台州学院计算机系 应建健编记住显示的这一系列数值,然后关闭程序,重新运行程序,再用鼠标多次单击窗体,发现显示出的数值与第一次完全相同。这表明当程序开始运行时,随机数发生器被重置为固定的初始状态。为了能使每次程序运行时产生
107、的随机数序列不相同,可以这样修改上面的代码:Private Sub Form_Click() Randomize 初始化随机数发生器,产生新的随机数序列 Print RndEnd Sub技巧:Rnd*10能产生010(不包含10)的随机数,如果要产生1100的整数,可以用表达式Int(Rnd*100+1)来获取。如果要产生a,b(其中a,b为整数,且ab)区间上的随机整数,可以采用表达式Int(Rnd*(b-a+1)+a)来实现。咱膨逊席稼昂训发引青摩声靡晶镑度渠灰艺磨争教巨孔胀叛铂雕字拷毅的第2章VisualBasic编程基础第2章VisualBasic编程基础91台州学院计算机系 应建健编
108、 6. 6. 与与与与PrintPrint方法有关的函数方法有关的函数方法有关的函数方法有关的函数(1)Tab(n):将输出位置定位到第n列。如执行语句:Print Tab(10);张三,Tab(30);98Print Tab(10);李四,Tab(30);95能使两行的姓名和数值上下对齐显示在窗体上。(2)Spc(n):输出n个空格。如语句“Print 张三;Spc(3);李四 ”能输出“张三 李四”。学习指导:你可以编制类似于下面的程序对上面所列的函数进行试验,从而真正理解这些函数的功能。Private Sub Form_Click() Print Abs(-3.1) Print Sqr(
109、1.44) Print Int(9.8); Int(-9.8) End Sub沦损赃都掠椭瘫祁店翟寇舅宜殴洞抖喧伴衷屎几惨空殿闭订秦邦狗资掉蹈第2章VisualBasic编程基础第2章VisualBasic编程基础92台州学院计算机系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数与用户交互的程序往往需要在程序运行时,让用户输入数据,然后程序对用户输入的数据进行处理,最后将结果输出给用户看。我们可以用控件(如文本框)接受用户的输入和显示结果,还可以用InputBox函数来接受用户的输入,用MsgBox输出信息,它们以对话框的形式与用户交互。狙舞峨邑瘩腑穷步间纲暴傻直配瞥瞪
110、错扼忻煞素皱倔谷粪度室负矣玄函镑第2章VisualBasic编程基础第2章VisualBasic编程基础93台州学院计算机系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数1. InputBox1. InputBox函数函数函数函数功能:显示输入对话框,接受用户的输入。格式: = InputBox(,)格式说明:它有三个参数,第一个必须要写上,后两个参数可选。其中:(1)指定在对话框显示的文本信息。(2)指定对话框的窗口标题。(3)可以在对话框的输入区作为初始值出现。屉拌什铭颤运傣学摘捧变钨酋肮妻钟皮白椅锡洞锯辱耳随舶痊誉鼻惰贩壳第2章VisualBasic编程基础第2章
111、VisualBasic编程基础94台州学院计算机系 应建健编该函数返回的数据是字符串类型,当用户单击“确定”按钮,则InputBox函数返回文本框中的内容;如果单击“取消”按钮,则此函数返回一个长度为零的字符串()。如执行语句n=InputBox(请输入你的年龄:,数据输入,19)时,显示如图2-16的对话框。如果n是Integer类型的数据,若输入了无法转换成整数的数据,将出现“类型不匹配”错误。图2-16 InputBox函数的输入对话框澳莹庸甘秸惋睛纂庭祈庆账叮盘饥轩轩硕舀采袍靴骏牲揽碍首谐律泽替纯第2章VisualBasic编程基础第2章VisualBasic编程基础95台州学院计算机
112、系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数 2. MsgBox2. MsgBox函数函数函数函数功能:在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。格式1:MsgBox ,格式2: = MsgBox(,)格式说明:格式1只是显示对话框,不返回任何信息,格式2接受用户在对话框里的单击了哪个按钮的信息,便于程序针对用户的不同选择而做出不同的响应。所有的函数都有这两种格式的写法,但格式1不处理返回值,参数列表就不带括号,格式2要接受返回值,参数列表要放在括号里。(1)指定对话框中要显示的文本信息。(2)指定对话框中出现的按钮和图标样式。(3)指定
113、对话框的窗口标题。 坞叭捐洲赚畸煮搏恐炳总憾聪鲜恫屉难毁按寝久涤获怪快卯态僵碾惑紫庙第2章VisualBasic编程基础第2章VisualBasic编程基础96台州学院计算机系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数参数由三部分组成,分别是关于按钮、图标和默认按钮的信息。具体规则如表2-8、表2-9和表2-10所示。值VBVB常量常量显示按示按钮0 0vbOKOnlyvbOKOnly只只显示确定按示确定按钮1 1vbOKCancelvbOKCancel显示确定和取消按示确定和取消按钮2 2vbAbortRetryIgnorevbAbortRetryIgnore显示
114、放弃、重示放弃、重试和忽略按和忽略按钮3 3vbYesNoCancelvbYesNoCancel显示是、否和取消按示是、否和取消按钮4 4vbYesNovbYesNo显示是和否按示是和否按钮5 5vbRetryCancelvbRetryCancel显示重示重试和取消按和取消按钮表2-8 按钮样式老滤撬巢峙邵佩蘸捍猜讨衬反扯凿孙铱奠块昨袒毒勉齐遥乳庐达扩耗框桓第2章VisualBasic编程基础第2章VisualBasic编程基础97台州学院计算机系 应建健编值值VBVBVBVB常量常量常量常量显显示示示示图标图标16161616vbCriticalvbCriticalvbCriticalvbC
115、ritical显显示示示示错误图标错误图标32323232vbQuestionvbQuestionvbQuestionvbQuestion显显示示示示询问图标询问图标48484848vbExclamationvbExclamationvbExclamationvbExclamation显显示警告示警告示警告示警告图标图标64646464vbInformationvbInformationvbInformationvbInformation显显示信息示信息示信息示信息图标图标值值VBVBVBVB常量常量常量常量默默默默认认按按按按钮钮0 0 0 0vbDefaultButton1vbDefaul
116、tButton1vbDefaultButton1vbDefaultButton1第一个按第一个按第一个按第一个按钮为钮为默默默默认认按按按按钮钮256256256256vbDefaultButton2vbDefaultButton2vbDefaultButton2vbDefaultButton2第二个按第二个按第二个按第二个按钮为钮为默默默默认认按按按按钮钮512512512512vbDefaultButton3vbDefaultButton3vbDefaultButton3vbDefaultButton3第三个按第三个按第三个按第三个按钮为钮为默默默默认认按按按按钮钮表2-10 默认按钮表2
117、-9 图标样式 天纬黔游府扇篱游苫倔歹惧讣兰内硼镑揉彰峰惮瓶冕淋戈酮闷鹅沥准特字第2章VisualBasic编程基础第2章VisualBasic编程基础98台州学院计算机系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数如,执行语句MsgBox 你输入的数据不正确!,vbExclamation,输入错误后,出现图2-17的消息对话框,并发出警告的声音。 图2-17 MsgBox消息对话框入牢洞藕齿忘渐褂殃冲沂举戊滚眶霸蝶题胡慢固帮时缕惺蛮酶童令堂踪映第2章VisualBasic编程基础第2章VisualBasic编程基础99台州学院计算机系 应建健编2.4.6 Input
118、Box函数和函数和MsgBox函数函数(4)返回值:如果使用格式2来执行MsgBox,将返回一个值来指定用户单击了哪个按钮。返回值的含义见表2-11。 返回返回值VBVB常量常量用用户的的选择1 1vbOKvbOK确定确定2 2vbCancelvbCancel取消取消3 3vbAbortvbAbort放弃放弃4 4vbRetryvbRetry重重试5 5vbIgnorevbIgnore忽略忽略6 6vbYesvbYes是是7 7vbNovbNo否否表2-11 MsgBox函数返回值代表的用户选择刹涯家乎吉闷裂肇金锄捆掺怪核躬摆琼吠僵郴吨善慰枉迎杯砒巫爹佃侯蚀第2章VisualBasic编程基础
119、第2章VisualBasic编程基础100台州学院计算机系 应建健编2.4.6 InputBox函数和函数和MsgBox函数函数程序设计者可以根据MsgBox函数的返回值,对用户的选择做出响应。如程序段:n = MsgBox(你真的要退出程序吗?, vbOKCancel + vbQuestion, 退出程序)If n = vbOK Then End执行时将显示消息对话框,它具有“确定”和“取消”两个按钮,有一个询问图标。当用户选择了“确定”,将返回1(即vbOK)给变量n,只要对n的值进行判断就能决定是否结束程序的运行。丑汹继狗雾像赁歹蚜偏搀厕壁角湛袄匀减默侨与惧调段懈憎涸荡邪沏叼皇第2章Vi
120、sualBasic编程基础第2章VisualBasic编程基础101台州学院计算机系 应建健编2.5 编程实例编程实例【例2-10】 编制一个程序实现两个整数的相加和相减功能。程序运行后的初始界面如图2-18所示。 图2-18 例2-10的程序运行后的初始界面纤闸镜裤苇够睦默吗氢咯陈哗忱启护明这篆蒂掖冬今烫适够黑便矩凸处凋第2章VisualBasic编程基础第2章VisualBasic编程基础102台州学院计算机系 应建健编2.5 编程实例编程实例界面设计时,相应的对象属性设置如下:(1)窗体Form1:Caption属性设为“整数加、减”。(2)三个标签:Label1的Caption属性设为
121、“请输入第一个整数:”,Label2的Caption属性设为“请输入第二个整数:”,Label3的Caption属性设为“结果是:”。(3)三个文本框:Text1、Text2、Text3的Text属性都设为空。(4)两个命令按钮:Command1和Command2的Caption属性分别设为“相加”和“相减”。(5)所有控件的Font属性都设为“宋体,小四号”。巡献理悼听巡怔鄙寇爽桑象佣寂莉渺布划铂拆击坪悟先萍椅浚鬼丽滩描责第2章VisualBasic编程基础第2章VisualBasic编程基础103台州学院计算机系 应建健编 接着为接着为Command1Command1和和Command2C
122、ommand2添加单击事件代码:添加单击事件代码:Private Sub Command1_Click()Private Sub Command1_Click() Dim a As Integer, b As Integer, s As Integer Dim a As Integer, b As Integer, s As Integer 变量声明变量声明 a = Val(Text1.Text) a = Val(Text1.Text) 取出取出Text1Text1中的文本,转换成数值后赋值给中的文本,转换成数值后赋值给a a b = Val(Text2.Text) b = Val(Text2
123、.Text) 取出取出Text2Text2中的文本,转换成数值后赋值给中的文本,转换成数值后赋值给b b s = a + b s = a + b 将表达式将表达式a+ba+b的计算结果赋值给的计算结果赋值给s s Text3.Text = s Text3.Text = s 将将s s的值自动转换成字符串放到的值自动转换成字符串放到Text3Text3中显示出来中显示出来End SubEnd SubPrivate Sub Command2_Click()Private Sub Command2_Click() Dim a As Integer, b As Integer, s As Intege
124、r Dim a As Integer, b As Integer, s As Integer a = Val(Text1.Text) a = Val(Text1.Text) 如果写成如果写成a=Text1.Texta=Text1.Text,将把文本自动转换成数值,将把文本自动转换成数值 b = Val(Text2.Text) b = Val(Text2.Text) s = a - b s = a - b Text3.Text = s Text3.Text = sEnd SubEnd Sub 从上面代码的注释可以看到,与用户互动的程序一般分为三部分:获得用户从上面代码的注释可以看到,与用户互动的
125、程序一般分为三部分:获得用户的输入、计算处理、把结果输出。的输入、计算处理、把结果输出。 技巧:可以用技巧:可以用ValVal函数将字符串转化为数值。函数将字符串转化为数值。 拓展练习:修改程序,使它能进行浮点数的乘除运算。拓展练习:修改程序,使它能进行浮点数的乘除运算。茫窜属亢穷唁滦储刘熏座沥餐彤莉疽般乡彤芜在栽费觉锈拓针蚁权撇斗毅第2章VisualBasic编程基础第2章VisualBasic编程基础104台州学院计算机系 应建健编2.5 编程实例编程实例【例2-11】 用InputBox函数输入数据。在窗体Form1上添加一个标签、两个命令按钮(图2-19)。图2-19 例2-11的程序
126、运行后的初始界面陆嚏搪航蛋放丑言达戒甸鹊一缔亲尼未丑匈匪朗妈翘厘耿部原氢涛邮岗陶第2章VisualBasic编程基础第2章VisualBasic编程基础105台州学院计算机系 应建健编2.5 编程实例编程实例设置下列属性:(1)Form1:Caption属性设为“输入练习”。(2)Label1:Caption属性设为请单击“输入”按钮,字体设为“宋体、小二号”。(3)Command1、Command2的Caption属性分别设为“输入”和“结束”。接着输入如下代码:Private Sub Command1_Click() Dim XM As String 声明XM为字符串 XM = Input
127、Box(请输入你的姓名:, 输入姓名) 显示输入对话框,存入XM Label1.Caption = XM & ,欢迎使用VB! 连接字符串End SubPrivate Sub Command2_Click() End 程序结束End Sub恃审消鸵属尖拣绕胰乐谋羡膳犊替轨挑敞岩蘸河盛阳框蚁旗樊毕廷浩锨绪第2章VisualBasic编程基础第2章VisualBasic编程基础106台州学院计算机系 应建健编2.5 编程实例编程实例程序运行时单击“输入”按钮,在“输入对话框”内输入“张三”后单击“确定”按钮,出现图2-20的结果。图2-20 例2-11的运行结果单击“结束”按钮,程序结束运行。图2
128、-20 例2-11的运行结果 氏稚卧屏卯稽蔫湘熬麓渡戎奄巾挥抿嚏究扎淳斩讥咬坐感课仲蔚悠钱哥铲第2章VisualBasic编程基础第2章VisualBasic编程基础107台州学院计算机系 应建健编2.5 编程实例编程实例【例2-12】 InputBox函数和MsgBox函数练习。输入半径,计算圆面积。在窗体Form1上放置一个命令按钮Command1,改变它的Caption为“计算圆面积”。添加代码下列代码:Private Sub Command1_Click() Dim r As Single, s As Single r = InputBox(请输入半径:, 输入半径, 2) s = 3
129、.1416 * r * r MsgBox 面积为 & sEnd Sub可以用相似的方法编制:(1)求正方形面积的程序;(2)求圆柱体体积的程序。 噬硅客薛樊基凑涕让情丁袁桩列钧幢赌咳卸晴世混柬蠢遂棚都限沫畏笨硕第2章VisualBasic编程基础第2章VisualBasic编程基础108台州学院计算机系 应建健编2.5 编程实例编程实例【例2-13】 编程思路训练。如何交换两个变量存储的数值?Private Sub Form_Click()Dim a as Integer, b as Integer, t as Integera=1: b=2Print a,b 显示交换前的值t=a: a=b:
130、 b=t 交换a,b的值Print a,b 显示交换后的值End Sub拓展练习:请修改程序,交换两个Double型变量的值。鲍五督峙橡稠酞媳豹姓梁膀擎俞吕塘搔系蹦杜耶簿伏杖截给默翔初等抗允第2章VisualBasic编程基础第2章VisualBasic编程基础109台州学院计算机系 应建健编2.5 编程实例编程实例【例2-14】 日期、时间和文本换行的练习。在窗体Form1上放置文本框Text1和命令按钮Command1,设置Text1的MultiLine属性为True,设置Command1的Caption属性为“刷新”。要求:运行程序,单击“刷新”,程序的运行界面图如图2-21所示(代码见
131、下页)。图2-21 例2-14程序的运行结果电哆阶掂丈碳搞受形倔店岩孩诞圭字港匪泻宠乱哀老排剐洒豫涣攒烤慢帘第2章VisualBasic编程基础第2章VisualBasic编程基础110台州学院计算机系 应建健编2.5 编程实例编程实例添加以下代码:Private Sub Command1_Click() Text1.Text = 今天是 & Year(Date) & 年 & Month(Date) & _ 月 & Day(Date) & 日 & Chr(13) & Chr(10) Text1.Text = Text1.Text & 现在时间是 & TimeEnd SubPrivate Sub
132、 Form_Load() Form1.Caption = 程序启动时间: & NowEnd Sub上面的代码中使用了“Chr(13) & Chr(10)”作用是让显示的文本在此处换行,也可以用vbCrLf来代替。而Command1的Click事件代码的第二行末尾的“_”(前面加空格)代表续行,即“下一行与本行是同一行的代码”的意思。莲藏牡延控磊伍撮面藻掸瞬碱虐议纪筹山龙尧帅木舍钱能唁斥蹦吏衡蔬售第2章VisualBasic编程基础第2章VisualBasic编程基础111台州学院计算机系 应建健编2.5 编程实例编程实例【例2-15】 拆分你的姓名。这是一个字符串函数的练习。在窗体上放置命令按
133、钮Command1,修改Form1和Command1的标题属性(参照图2-22)。 运行程序,单击按钮,在出现的对话框中输入“张三”,程序运行结果如图2-22所示(代码见下页)。图2-22 例2-15程序的运行结果基涅淀揭阴拨颇栖呵煞肇科细佑税舰眶搬份奏痪驯升肖杰梁笆蒜奴掉针雁第2章VisualBasic编程基础第2章VisualBasic编程基础112台州学院计算机系 应建健编2.5 编程实例编程实例代码如下:Private Sub Command1_Click() Dim XM As String, X As String, M As String XM = InputBox(请输入你的姓名:, 输入姓名) X = Left(XM, 1) 取出你的姓存入变量X M = Right(XM, Len(XM) - 1) 取出你的名存入变量M MsgBox 我记住你了,你姓+X+,名+M+!, vbInformation, 我记住你End Sub皮蔬掘纶励哲蔚雾琉甫艇做缚掸毛舷铆融集颂讹药氓湛纠漏情滋扁拢团唇第2章VisualBasic编程基础第2章VisualBasic编程基础113台州学院计算机系 应建健编