图1-13 【例1.3】运行效果图
(3)窗体的常用事件
窗体中最常用的事件有Click(单击)事件,Dblclick(双击)事件和Load事件。 ①Click(单击)事件和Dblclick(双击)事件 程序运行时鼠标单击或双击窗体,将触发窗体的Click事件和DblClick事件。事实上,当在窗体上双击时,首先触发的是窗体的Click事件,然后才是DblClick事件,如果两个事件过程都编写了代码,则会被依次执行。
【例1.4】窗体的Click事件和DblClick事件。 Private Sub Form_Click()
Form1.Caption = \窗体的Click事件\‘窗体标题显示为“窗体的Click事件” Move 0, 0, Width + 400, Height + 400 ‘移动窗体至坐标(0,0)处同时改变其大小
End Sub
Private Sub Form_DblClick()
Form1.Caption = \窗体的DblClick事件 ‘窗体标题显示为“窗体的DblClick事件”
Move Left + 150, Top + 200, Width + 200 ‘移动窗体同时改变其大小 End Sub ②Load事件
Load事件是一个窗体被加载到内存中准备显示时触发的事件。与Click事件和DblClick事件不同,窗体的确良Load事件不是由用户的操作触发,面是当应用程序启动时,自动执行该事件,因此常常在此事件过程中进行窗体及其上控件的属性和变量初始化工作。
【例1.5】新建一个窗体,在Load事件中编写代码,使窗体的标题显示为“Load窗体”,并将窗体的背景改变为红色。
Private Sub Form_Load() Caption = \窗体\ BackColor = &H000000FF& End Sub
2.标签(Label)
标签(Label)主要用于显示文本信息,程序运行时标签所显示的内容不能由用户直接编辑,只能用Caption属性来设置或修改。
(1)标签的主要属性
有Name、Caption、Font、Left、Top、BorderStyle、BackStyle等。 (2)标签的方法
标签也具有Move方法,使用格式同窗体。 (3)标签的事件
标签能响应Click事件和DblClick事件,如:
Private Sub Label1_Click() ‘单击标签能改移动标签位置并改变其大小 Label1.Move Left + 150, Top + 200, Width + 200, Height + 200 End Sub
但一般情况下,标签的主要功能是在窗体上说明或显示文字,没有必要编写事件过程。 3.文本框(TextBox)
文本框(TextBox)是一个文本编辑区,用户可以文本框内输入、编辑、修改及显示文本内容。
(1)文本框主要属性
同样,文本框也具有前文介绍的一些基本属性,如Name、Font 、Top、Left、Width、Height、Enable、Visible、Alignment、BorderStyle、ForeColor等。此外,还具有以下重要属性。
①Text属性
Text属性是文本框的默认属性,文本框无Caption属性,显示的文本内容是存放在Text属性中,当程序运行时,用户通过键盘来输入和编辑文本内容。
②MaxLength属性
指文本框能接收输入文本内容的最大长度。该属性值的默认设置为0,表示可以输入任意长度的字符串。VB中的字符长度是以字为单位,一个西文字符和一个汉字长度均为1。
③MultiLine属性
该属性决定文本框是否具有多行显示功能。其值为True时,文本框可输入或显示多行文本,当输入的文本超出显示框时,会自动换行,按Enter键可插入一个空行;其值为False时,不支持多行显示,False为该属性的默认设置值。
④ScrollBars属性
仅当MultiLine属性值为True时,ScrollBars属性有效。该属性决定文本框是否有垂直或水平滚动条。当文本框加入水平滚动条后,自动换行功能自行消失,只有按Enter键才能换行。
0 —— None:无滚动条。
1 —— Horizontal:加水平滚动条。 2 —— Vertical:加垂直滚动条。
3 —— Both:同时加垂直和水平滚动条。 ⑤Locked属性
指定文本框内容中否允许被编辑,默认取值为False,表示允许编辑,值改为True时,文本框不允许被编辑,只能显示文本。
⑥PasswordChar属性
文本框作为密码输入控件时,该属性值设为单个字符可屏蔽显示密码。如将文本框的PasswordChar属性设置为“*”(星号),则文本框中输入的任何文本信息均以星号显示。PasswordChar属性只是改变了显示方式而已,文本框的Text属性仍正常。
⑦SelStart、SelLength、SelText属性 程序运行时,用户对文本框中的内容进行选择操作时,这3个属性用来标识用户选中的文本。
SelStart:确定选定正文的开始位置,第一个字符的位置为0。 SelLength:确定选定的文本长度。 SelText:选定的文本内容。
当设置了SelStart和SelLength属性后,VB自动将设定的文本送入SelText中存放。三个属性常与剪贴板一起使用,完成文本信息的剪切、复制和粘贴。见例1.6。
(2)文本框常用方法
SetFocus方法是文本框最有用的方法。其格式为: [对象.]SetFocus
该方法是把光标移至指定的文本框中,当窗体上建立了多个文本框时,可使用该方法把光标置于所需要的文本框上。
(3)文本框常用事件
Change事件、KeyPress事件、LostFocus事件和GotFocus事件是文本框最重要的响应事件。
①Change事件
在程序运行过程中,当文本框中的内容(即Text属性值)发生改变时引发该事件。用户每输入一个字符,就会触发一个Change事件。
如:Private sub Text1_Change() Text2.Text=Text1.Text End Sub
当文本框Text1中输入任意文本,将触发事件过程Text1_Change(),从而文本框Text2中的内容将自动随Text1中内容同步发生变化。
②KeyPress事件
程序运行时,用户按下并且释放键盘上的一个可打印字符(即ANSI键),将会引发焦点所在控件的KeyPress事件,如焦点在文本框上,就引发文本框的KeyPress事件,此事件会把输入字符的ASCII值作为参数返回到该事件过程中。如按下键盘上字母“a”,则返回KeyAscii的值为96。同理,如果KeyAscii的值为13,表示用户按下并释放的是回车键,文本输入结束,实际应用中,我们常常利用该事件的这一返回参数来判断是否输入文本结束。
③LostFocus事件
当控件失去焦点时,触发LostFocus事件,Tab键的移动或单击另一对象都能引起当前控件焦点的丢失。
【注意】Focus英文为“焦点”、“聚焦”之意,什么是焦点呢?最直观的例子是,比如桌面上有两个层叠的窗体,互相有一部分遮盖,当我们点击下面的窗体时,它就会全部显示出来,这时该窗体处在被激活的状态,并且标题条变成蓝色,这就是GotFocus事件,而相反,另外一个窗体被遮盖,并且标题条变灰,称为LostFocus事件。
④GotFocus事件
与LostFocus事件相反,当一个对象获得焦点时发生GotFocus事件。 4.命令按钮(commandButton)
命令按钮(commandButton)在应用程序中使用最为普遍,是用户与应用程序交互的一个直接手段。
(1)命令按钮(commandButton)的常用属性 命令按钮也具有Name、Font 、Top、Left、Width、Height、Enable、Visible、Alignment、BackColor、ForeColor、TabIndex等基本属性,其含义和设置前面已有详细介绍。
①Caption属性
该属性的值即命令按钮上显示的文字。如果用户在设置命令按钮的Caption属性值中含有“&”字符,“&”字符本身并不显示在命令按钮上,该字符所起作用是把紧接在它后面的字符定义为该命令按钮的快捷键,程序运行时,快捷键字母带下划线显示,当用户按下Alt+快捷键,便可激活该命令按钮。
例如,命令按钮Command1的Caption属性设置为“&Run”,则程序运行时,命令按钮显示标题文字为“Run”,当用户按下Alt+R(快捷键)时可激活命令按钮Command1。
②Style属性
该属性用于确定命令按钮的显示类型,命令按钮不仅可显示文字,也可显示图形。属性值有两种:0——Standard 标准按钮,按钮上不能显示图形,此为默认值;1——Graphical图形的,按钮上可以显示文字,也允许用Picture属性为按钮选择显示图形。
③Picture属性
若Style属性设置为1,则可利用Picture属性显示图形文件(扩展名为.bmp和.ico)。
④Defanlt属性
该属性决定命令按钮是否是“默认按钮”,属性值为逻辑类型。“默认按钮”是指这样的按钮,当用户在窗口中按下Enter键时,不管当前输入焦点在哪个控件上(可按收Enter键操作的控件除外),都相当于单击了该按钮。默认按钮有较粗的边框,一个窗体上只能有一个按钮的Defanlt属性值为 True。
⑤ToolTipText属性
ToolTipText属性与Picture属性配合使用,如果一个命令按钮仅有图形显示时,可以利用该属性以较少的文字来解释该命令按钮。
(2)命令按钮常用事件
命令按钮使用最多的是Click(单击)事件。
【例1.6】利用文本框和命令按钮建立一个简单的文本编辑器。在窗体上建立两个文本框Text1、Text2,三个命令按钮command1、command2、command3,调整和对齐至合适大小和位置,如图1-14所示。按表1-4修改各控件属性。
表1-4 属性设置 控件默认名称 Text1 Text2 Form1 相关属性设置 Multilane=true, ScrollBars=2 Multilane=true, ScrollBars=3 Caption=一个简单的文本编辑器 控件默认名称 相关属性设置 Command1 Command2 Command3 Name=剪切 Name=复制 ame=粘贴
图1-14 简单的文本编辑器
在代码窗口编写各事件过程代码如下:
Dim temp As String '定义一个变量temp存放文本框Text1中被选中内容 Private Sub 剪切_Click()
temp = Text1.SelText 'text1中被选中内容存入变量temp中 Text1.SelText = \被选中内容以空文本代替 剪切.Enabled = False '剪切按钮呈暗色显示 复制.Enabled = False '复制按钮呈暗色显示 粘贴.Enabled = True End Sub
Private Sub 复制_Click()
temp = Text1.SelText 'text1中被选中内容存入变量temp中 粘贴.Enabled = True 剪切.Enabled = False 复制.Enabled = False End Sub
Private Sub 粘贴_Click()
Text2.Text = temp '变量temp中内容存入text2的text属性中 剪切.Enabled = True 复制.Enabled = True End Sub
运行该程序,在文本框1中可输入和编辑任意文本内容,用鼠标选定部分文本,单击剪切按钮和粘贴按钮,分别触发剪切_Click()和粘贴_Click()两个事件过程,可实现将选定内容剪贴到文本框Text2中。同理,单击复制按钮和粘贴按钮,分别触发复制_Click()和粘贴_Click()两个事件过程,实现选定文本内容的复制功能。
在本例中,为增加程序的可读性,修改了三个命令按钮的Name(名称)属性,因此,凡在代码中引用到命令按钮的默认名称处都要作相应的修改。
【例1.7】将例1.6中的三个命令按钮的属性按下表1-5修改。则用户界面如图1-15示:
表1-5 【例1.7】中控件属性的修改 控件默认名 Command1 Command2 Command3 Name属性 cmdCut cmdCopy cmdPaste Caption属性 空白 空白 空白 Picture属性 cut.ico copy.ico paste.ico Style属性 1——Graphical 1——Graphical 1——Graphical ToolTipText属性 剪切 复制 粘贴 注意,cut.ico 、copy.ico、 paste.ico三个图标文件是在Picture属性设置时通过浏览获取,如果读者的本地机上没有这三个文件,可用别的图形文件来代替,不要生搬硬套。本例旨在熟悉命令按钮的几个重要属性的使用。本例中控件的命名(即Name属性)采用了匈牙利命名法,则例1.6中代码凡用到三个命令按钮名称的地方均要作相应修改,请读者自己去完成。
图1-15 修改属性后的运行界面