《其他常用的语句及控件》由会员分享,可在线阅读,更多相关《其他常用的语句及控件(84页珍藏版)》请在金锄头文库上搜索。
1、第 10 章,其他常用的,语句及控件,本章主要内容其他一些常用语句框架(Frame)滚动条(ScrollBar) 图形方法和图形控件 菜单设计 工具栏和状态栏 键盘与鼠标事件对话框 通用对话框(CommonDialog) 文件系统控件,第10章 其他常用的语句及控件,10.1.1 强制显式声明变量语句(Option Explicit)避免因为写错变量名而导致错误例如,交换变量a、b的值Temp=aa=bb=Tmp 把Temp写错成Tmp 运行结果是使b的值为0。若改成: Option Explicit 模块级声明 Dim a As Integer,b As Integer,Temp As In
2、teger. . . Temp=a a=b b=Tmp 运行时VB就会发出警告“Variable not defined”(变量未定义),只有把Tmp改为Temp后才恢复正常,10.1 其他常用语句,格式:Def类型标志 字母范围功能:在模块级声明段中定义变量 (相应数据类型 ) 示例:DefInt m-P10.1.3 自定义数据类型 用户可以利用Type语句定义自己的数据类型 Private|Public Type 数据类型名 元素名1 As 类型名1 元素名2 As 类型名2 End Type,10.1.2 定义变量类型,Type Rsk_Rec 编号 As String*3 用汉字表示字
3、段名姓名 As String*8性别 As Boolean出生日期 As Date基本工资 As LongEnd Type这里的Rsk_Rec是一个用户定义的数据记录类型,它由5个元素(字段)组成,所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值 Public|Private Enum 枚举类型名成员名1 =常数表达式成员名2 =常数表达式End Enum,10.1.4 定义枚举类型,输入一个数字表示星期几,判断输出是“休息日”还是“工作日”Private Enum weekdays 定义Weekdays为枚举类型SunMonTueWedThuFriSatEnd Enum,例
4、10.1 应用枚举类型示例,Private Sub Command1_Click()Dim myday As weekdays 定义Myday为Weekdays枚举类型myday = Val(InputBox(“今天是星期几(06)“) 输入06If myday Sat ThenMsgBox “输入的星期数错误“ElseIf myday = Sun Or myday = Sat ThenMsgBox “休息日“ElseMsgBox “工作日“End IfEnd IfEnd Sub,包括GoTo语句和On.GoTo语句 1. GoTo语句 语法格式:GoTo 行号|标号 功能:改变程序的执行顺序
5、,跳转到程序中指定的行开始执行 例10.2 应用GoTo语句示例Private Sub Form_Load()ShowPrint “整型数“GoTo Line1 跳转到标号Line1指定的行Print “单精度数“Line1:Print “字符串“End Sub,10.1.5 GoTo型控制,On.GoTo语句用来实现分支选择控制(类似于Select.End Select)语法格式:On 数值表达式 GoTo 行号表|标号表 功能:根据“数值表达式”的值,控制转移到几个指定的语句行中的一个语句行。例如On K GoTo Line1, Line2, Line3执行过程:将K四舍五入取整,如果其值
6、为1,则转移到Line1标号行;如果为2,则转移到Line2标号行;如果为3,则转移到Line3标号行。如果K的值等于0或大于3,则自动执行本语句的下一个语句,2. On.GoTo语句,1. 直接输出 把信息直接送往打印机格式:Printer.Print 表达式表 (1)Page属性:设置当前页号格式:Printer.Page(2)NewPage方法:实现换页操作格式:Printer.NewPage(3)EndDoc方法:结束文件打印格式:Printer.EndDoc,例10.3 在打印机上打印文字“计算机程序设计” Private Sub Command1_Click()Printer.Fo
7、ntName = “隶书“Printer.FontSize = 12Printer.Print “计算机程序设计” 将文本放到Printer对象中Printer.EndDoc 打印结束End Sub,10.1.6 打印机输出,2. 窗体输出先把要输出的信息送到窗体上,再用PrintForm方法把窗体上的内容打印出来 格式:窗体名.PrintForm功能:把窗体上的信息输出到打印机,VB只有在发生事件时才执行相应的事件过程,如果没有事件发生,则应用程序处于“闲置”状态 所谓闲置循环,就是当程序处于闲置状态时,用一个循环来执行某些操作 为使在闲置循环中也能响应其他操作和事件,VB提供了一个DoEv
8、ents语句,其格式为: 窗体号=DoEvents() 功能:在闲置循环中,通过DoEvents语句可以把控制权交给系统去处理所发生的事件,10.1.7 闲置循环与DoEvents语句,(1) 建立一个文本框和二个命令按钮,两个事件过程:Private Sub Command1_Click()Text1.FontSize = Text1.FontSize + 1End SubPrivate Sub Command2_Click()EndEnd Sub(2) 编写Sub Main过程Private Sub MAIN() Form1.ShowDo While True 进入“闲置循环”x = Do
9、Events 把控制权交给系统去处理所发生的事件否则不能处理其他事件Form1.Text1.Text = TimeLoopEnd Sub,例10.4 闲置循环和DoEvents应用示例,(3)把Sub Main设置为启动对象程序运行后,进入闲置循环,此时将在文本框Text1中不断地显示系统时间。由于加入DoEvents函数,则可以在执行闲置循环过程中执行其他操作,如重设窗体的大小及最大化/最小化,还能响应命令按钮Command1和Command2的单击事件等。当其他操作完成后,又会回到闲置循环中继续执行,1. 框架的用途 作为容器放置其他控件对象,将这些控件对象分成可标识的控件组;框架内的所有
10、控件将随框架一起移动、显示和消失。 2. 常用属性 Name属性和Caption属性3. 事件 可以响应Click和Dblclick事件。 在应用程序中一般不需要编写有关框架的事件过程,10.2 框架(Frame),例10.5 控制文本的字体、字号及颜色,设计步骤如下: (1)创建应用程序的用户界面和设置对象属性在窗体上设置3个框架Frame1、Frame2和Frame3,(2)编写程序代码,功能要求:在三个框架中分别选择字体、字号和颜色,单击“确定”按钮后,文本框中的文本相应属性会发生变化Private Sub Form_Load()Option1.Value = TrueOption3.V
11、alue = TrueOption5.Value = TrueText1.FontName = “宋体“Text1.FontSize = 16Text1.ForeColor = RGB(0, 0, 255)End Sub,Private Sub Command1_Click()If Option1.Value ThenText1.FontName = “宋体“ElseText1.FontName = “幼圆“End IfIf Option3.Value ThenText1.FontSize = 16ElseText1.FontSize = 20End IfIf Option5.Value Th
12、enText1.ForeColor = RGB(0, 0, 255)ElseText1.ForeColor = RGB(255, 0, 0)End IfEnd Sub,10.3 滚动条,1.滚动条的用途 为不能自动支持滚动的应用程序和控件提供滚动功能,也可作为数据输入的工具。 水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)最小值(Min),最大值(Max) ;移动滚动块时,代表的值随之改变2. 常用属性(1)Min、Max属性: Min属性的默认值为0,Max属性的默认值为32767。 (2)Value属性:设置滚动块在滚动条中的位置值(3)SmallChange最小变
13、动值属性(4)LargeChange最大变动值属性,3. 事件滚动条控件可以识别10个事件,其中最常用的是Scroll和Change事件 (1)Scroll事件:当用鼠标拖动滚动块时,即触发Scroll事件(2)Change事件:当改变Value属性值时,即触发Change事件当释放滚动块、单击滚动条内空白处或滚动箭头时,Change事件就会发生。,例10.6 设计一个调色板应用程序,建立三个水平滚动条作为红、绿、蓝三种基本颜色的输入工具,合成的颜色显示在右边的标签中(图10.17),用其背景颜色属性BackColor值的改变实现合成颜色的调色,说明:根据调色原理,基本颜色有红、绿、蓝三种,选
14、择这三种颜色的不同比例,可以合成所需要的任意颜色(1)创建应用程序的用户界面和设置对象属性三个水平滚动条名称从上至下分别为HScroll1、HScroll2、HScroll3其Max属性均设置为255,Min属性均设置为0,SmallChange属性设置为1,LargeChange属性设置为10,Value设置为0。显示合成颜色的标签名为Label1,(2)编写程序代码功能要求:通过操作(单击或拖动)滚动条,直接修改RGB设置,从而得到标签背景所需的颜色Private Sub HScroll1_Change()Label1.BackColor = RGB(HScroll1.Value, _HS
15、croll2.Value, HScroll3.Value)End SubPrivate Sub HScroll2_Change()Label1.BackColor = RGB(HScroll1.Value, _HScroll2.Value, HScroll3.Value)End SubPrivate Sub HScroll3_Change()Label1.BackColor = RGB(HScroll1.Value, _HScroll2.Value, HScroll3.Value)End Sub,4种图形控件:PictureBox控件、Image控件、Shape控件和Line控件;图形方法10
16、.4.1 坐标系 每个对象都定位于存放它的容器内 每个容器都有一个坐标系,它包括坐标原点,x坐标轴和y坐标轴,默认的坐标原点(0,0)在容器对象的左上角默认单位为Twip(缇),还可以使用磅、像素、厘米等单位 窗体的实际可用的高度和宽度由ScaleHeight和ScaleWidth属性确定 CurrentX和CurrentY属性,10.4 图形方法和图形控件,使用Pset(画点)、Line(画线)、Circle(画圆)等图形方法,可以方便地在窗体和图片框上绘制简单的图形1. Pset(画点)方法 格式:对象名. Pset Step(x,y),颜色 功能:在对象的指定位置(x,y)上按选定的颜色画点 参数Step指定(x,y)是相对于当前坐标点的坐标示例:下列语句能在坐标位置(500,900)处画一个红点:Pset (500,900),RGB(255,0,0) 该语句等价于: CurrentX=100 : CurrentY=100 Pset Step(400,800),RGB(255,0,0),