1、您双击了窗体!,并且文本有一个边框,如图5.3所示:5.2 按钮控件在应用程序中,按钮控件常常被用来启动、中断或结束一个进程,用户可以通过简单的单击按钮来执行操作。只要用户单击按钮,就会触发它的Click事件过程,通过编写按钮的Click事件过程,就可以指定它的功能了。 按钮控件的常用属性如表5.3所示。5.2.1按钮的有效性在某些应用程序界面中,按钮会根据用户的操作情况呈现两种不同的状态,一种是有效,一种是无效.在状态时,按钮通常以浅灰色显示,不能响应用户的任何操作。Windows系统自带的录音机程序界面,其中的【停止】与【后退】按钮无效(以浅灰色显示).按下【播放】按钮后,【播放】按钮变为
2、无效,而【停止】按钮变为有效。按下【停止】按钮后,【停止】按钮变为无效,【播放】按钮恢复有效。 通过按钮的有效性可以看出当前程序的状态,从而避免一些不需要的或重复的操作。如在录音机处于停止状态时(【停止】按钮无效),用户就不需要再去单击【停止】按钮来停止播放了。这里给出一个实例,来模拟录音机的停止与播放按钮。 实例5.2按钮的有效性 在窗体中放置一个标签控件和两个按钮控件,如图5.5所示,其中各控件的属性设置如表5.4所示。 注意:按钮控件添加到窗体上后,在默认情况下,它们的Enabled属性为Ture,在运行程序前,请在【属性】窗口中确认两个按钮的Enabled属性均为Ture,以防止用户在
3、操作中谋改变了这个属性。双击第一个按钮,打开【代码】窗口,将下列代码添加到ComPlay_Click事件过程中: Private Sub ComPlay_Click() Labell.Caption=正在播放歌曲 Complay.Enabled=False ComStop.Enabled=Ture End Sub 当用户单击【播放】按钮时,触发ComPlay_Click事件,该事件过程中的第一行代码是在标签中显示文本,第二行代码是将【播放】按钮变为无效,第三行代码是将【停止】按钮变为有效。 与此类似,将下列代码添加到Comstop_Click事件过程中: Private Sub Comstop
4、_Click()歌曲播放停止 ComPlay.Enabled=Fasle ComPlay.Enabled=Ture 运行该程序,单击【播放】按钮,则在标签中显示,并且【播放】按钮变为无效,如图5.6所示。单击【停止】按钮,则在标签中显示,【停止】按钮变为无效,同时,【播放】按钮又恢复有效,如图。5.7所示。5.2.2 多功能按钮通常,每个按钮都有一个固定的标题(Caption)和一个特定的功能,用户也可以设计出多功能按钮。单击这样的按钮,按钮的名称会发生变化,并且会执行与按钮标题相应的操作。 实例5.3多功能按钮。 在该程序中,窗体上只有一个按钮,单击该按钮,按钮的标题会在显示日期与显示时间间
5、切换,并且在窗体中将显示出与当前按钮标题相应的内容。 在窗体上放置一个标签控件和一个按钮控件,其中各对象的属性设置如表5.5所示。双击【显示日期】按钮,打开【代码】窗口,将下列代码添加到Commandl_Click事件过程中:Private Sub Command1_Click() If Commandl.Caption-“显示日期”Then Labell.Caption=Date Command1.Caption=“显示时间”Else Labell.Caption =Time Command1.Caption=“显示日期” End if 在该段代码中,使用了一个If语句来判断当前按钮的标题,
6、然后做出相应的操作。 运行该程序,单击【显示日期】按钮,则在标签中显示当前的系统日期,并将按钮的标题改变为,如图5.9所示;再次单击按钮。则在标签中显示当前的系统时间,并且按钮的标题恢复为,如图5.10所示。这样,通过一个按钮就可以循环显示当前系统的时间与日期了。5.2.3 使用键盘操作按钮按钮控件的Click事件不仅可以由鼠标单击触发,还可以由以下几种方法触发: 按Tab键把焦点移到相应按钮上。然后按Space键或Enter键。 如果某按钮是窗体的缺省命令按钮,既使将焦点移到其他控件上(非按钮控件),按下Enter键也会选中该按钮。在设计时,通过设置按钮的Default属性为True,就可指
7、定它为窗体的缺省命令按钮。在一个窗体中只能有一个按钮为缺省命令按钮。 如果某按钮是窗体的缺省取消按钮,即使把焦点移到其他控件上,也能通过按Esc键选中该按钮。在设计时,通过设置某按钮的Cancel属性为True,就可指定它为窗体的缺省取消按钮。在一个窗体中只能有一个按钮为缺省取消按钮。 按按钮的访问键(Alt+带下划线的字母)可通过Caption属性创建命令按钮的访问键,为此,只需在作为访问键的字母前添加一个连字符(&).例如,要为标题为Print的按钮创建访问键,应在字母P前添加连字符(&),于是得到&Print.运行时,字母P将带下划线,同时按AIt+P键就可选定命令按钮。如果不创建访问健
8、,而又要使标题中包含连字符但不创建访问键,应添加两个连字符(&).这样一来,在标题中就只显示一个连字符而不显示下划线。 使用Enter键来执行某项操作和使用Esc键来取消某项操作是人们的操作习惯,因此,在设计程序时,最好设置窗体的缺省命令按钮和缺省取消按钮,来迎合人们的操作习惯。 实例5.4使用键盘操作按钮 在该程序中,用户可以使用Enter键,Esc键和访问键来选中按钮。若按Esc键,则退出程序。 在窗体中放置一个标签控件、一个文本框控件和两个按钮控件,其中各对象的属性设置如表5.6所示。 双击【确定】按钮,打开【代码】窗口,将下列代码添加到ComOK_Click事件过程中:TexTime.
9、Text =Time将退出程序的end语句添加到ComEsces_Click事件过程中:Private Sub ComEsc_Click() End 运行该程序,单击【确定】按钮或按下Alt+O组合键都将在文本框中显示当前的时间。将焦点移动到文本框上,按下Enter键也可以在文本框中显示当前的时间。单击【取消】按钮、按下Esc键或按下Alt+E组合键将退出程序。5.2.4 图片按钮在Windows程序界面中,标准的按钮形式是立体的长方形,在其上显示文本提示信息,表明按钮的功能。为了使用户界面更加生动,一些按钮上不是用文字,而是用图片来表明按钮的功能,如按钮的功能是保存,则在按钮上显示一个磁盘图
10、片。 在VB中,如果将按钮控件的Style属性的值设置为1,就可以通过Picture属性来设置要在按钮上显示的图片,通过DownPicture属性设置按钮被按下时显示的图片,通过DisablePicture属性设置按钮无效时显示的图片。 实例5.5图片按钮。 在该程序中,按钮上显示有图片,形象地说明了该按钮的功能。并且,按钮上的图片还会根据用户的操作,做出相应的变化。 在窗体上放置一个标签控件和两个按钮控件,如图5.13所示,其中各对象的属性设置如表5.7所示。提示:在安装VB时,如呆选择了安装图形选项,则在VB安装目录下的CommonGraphics目录将有大量的位图文件、元文件以及图标文件
11、等。在需安各种图形或图标时,可以在那里找到。 双击第一个按钮控件,打开【代码】窗口,将下列代码添加到ComLight_Click事件过程中:Private Sub ComLight_Click() If ComLight.Caption=“关 灯” Then ComLight.Picture=LoadPicture(“d:Microsoft visual studi oCommonGraphicesTconsMiscLighton.ico“ ComFace.picture=Loadpicture(“d:Microsoft visual studi oCommonGraphicesTconsMi
12、scFace04.ico“ ComLight.Caption=“开 灯” ComLiht.Picture=LoadPicture(“d:Microsoft visual studi oCommonGraphicesTconsMiscLightoff.ico“)Microsoft visual studi oCommonGraphicesTconsMiscFace02.ico“) ComLight.Caption=“关 灯” End If 【关灯】按钮是一个多功能按钮,与实例5.3一样,使用了If语句来判断按钮当前的标题。在程序运行时,设置对象的Picture属性的格式如下: 对象名Pictur
13、e = LoadPicture(文件名)在程序运行时,不能直接将文件名赋予控件的Picture属性,而要使用LoadPicture()函数。 将下列代码添加到ComFace_Click事件过程中:Private Sub ComFace_Click() Labell.Caption=“我 高 兴! Labell.Caption=“我 生 气! 运行该程序,单击【关灯】按钮,则该按钮上的图片变成一个发亮的灯泡,提示文本也由关灯变成了开灯,且另一个按钮上的笑脸图片变成了哭脸图片。单击【哭脸】按钮,则在标签中显示我生气!,如图5.14所示。再次单击【开灯】按钮,则该按钮上的图片恢复为一个关灭的灯泡,提
14、示文本,且另一个按钮上的哭脸图片恢复为笑脸图片。单击【笑脸】按钮,则在标签中显示我高兴!,如图 5.15所示。5.3.1 文本框的基本属性在前面的一些实例中,己经接触过文本框的Text属性。该属性是文本框最重要的一个属性,在设计时,使用该属性可以指定文本框的初始值。在程序中。Text属性用来返回用户在文本框中输入的内容。如要将用户在文本框(名称为Text1)中输入的内容显示在窗体上,可以使用以下语句: Print Textl.Text 表5.8列出了文本框的其他一些属性。 如果文本框的MultiLine属性的值设置为False,则这样的文本框称为单行文本框。在单行文本框中输入的内容均处于一行,
15、即便是按Enter键也不能实现换行。超出文本框的内容不显示出来,可以将插入点置于文本框中,然后按方向键来查看未显示出的内容。 如果文本框的MultiLine属性的值设置为True,则这样的文本框称为多行文本框。对于多行文本框,如果ScrollBars属性使用默认值(值为0),则在文本框中输入内容时,当一行填满之后,就会自动转换到下一行,也可以按Enter键强制换行。将插入点置于文本框中,然后按方向键即可查看超出文本框中的内容。如果Scro1LBars属性的值不为0,则文本框中会出现滚动条,通过滚动条可以方便地查看超出文本框的内容。图5.16所示的是在几个MultiLiue属性和Scro1lBa
16、rs属性设置不同的文本框中输入相同的内容后的情形,其中各文本框的MultiLine属性和ScrollBars属性的设置如表5.10所示。5.3.2 字体与字号大多数控件都有Font属性,用来设置显示在控件上文本的字体与字号。通过【属性】窗口设置Font属性的方法是:单击Font属性,则在属性行的右端会出现一个显示有符号的按钮,单击该按钮则打开【字体】对话框。在该对话框中选择一种需要的字体(如隶书)、样式(如规则)、字号(如小四)和效果(如下划线),单击【确定】按钮即可。 与其他属性不同,在代码中不能使用Font属性,如下列语句是错误的。 Text1.Font=宋体. Textl.Font=宋体
17、,四号 事实上,在【属性】窗口中通过设置Font属性同时也设置了多项属性,如字体、字号和效果等。而在代码中,每一个属性都对应一个属性名,如字体的属性名为FontName.表5.11中列出了在代码中设置字体、字号、黑体和下划线等属性的属性名以及示例。5.3.3 选择文本文本框控件还提供了3个属性,用于操作用户所选择的文本。且这3个属性不能在【属性】窗口中设置,只能在代码中使用。表5.12中列出这3个属性以及它们的含义。 要在程序中操作用户所选的文本,如将文本替换成指定的文本以及更改所选文本的大小写等,都可以使用SelText属性。 例如,将用户在文本框(Textl) 中所选文本替换成3个A的语句
18、如下: Texil.SelText=AAA 要删除当前所选的文本,只需向SelText属性赋予空字符串即可,语句如下: Text1.Se1Text= 将所选文本转换成大写,可以使用Ucase()函数,语句如下: Textl_SelText=UCase(Textl.SelText). 实例5.6替换文本。 在该程序中,用户在一个文本框中输入一段文本,使用鼠标拖动选中要替换的字符串,则在窗体上显示出所选字符串的起始位置和字符串的长度。在另一个文本框中输入替换内容后,单击【替换】按钮即可将所选的字符串替换,如图5.19所示,将用户所选的字符串替换成了改变两个字。 在窗体中放置五个标签控件、两个文本框
19、控件和一个按钮控件,如图5.20所示。其中各对象的属性设置如表5.13所示。使用鼠标拖动选中文本框中的字符串后,释放鼠标,则窗体上就显示出所选字符串的信息。因此,可以将显示所选字符串信息的代码添加到文本框的MouseUp事件中。Texsel_MouseUp事件过程如下所示:Private Sub Textsel_MouseUp(Button As Interger,Shift As Integer,x As Single,Y As Single ) LabStart.Vaption=TextSel.SelStart LabStart.Caption=TextSel.selLength 在按钮的
20、Click事件中添加如下代码: Private Sub Comch_Click() Text.SelText Texch.Text 这样,一个替换文本程序就创建完毕5.3.4 密码框密码框是一种特殊的文本框,它的特殊之处在于:当用户向密码框中输入文本时,不论用户输入的是什么字符,在密码框中总是显示特定的字符。如*、#等。这样,别人在密码框中就看不到用户所输入的实际内容,从而达到了保密的效果。 通过设置文本框的Password Char属性就可以将普通的文本框设置成为密码框。在缺省情况下,Password Char属性的值为空字符串。这时用户在键盘上输入什么字符,在文本框中就显示什么字符。如果将
21、Password Char属性的值设置为某个字符,如设置为星号(*),则用户在文本框中输入任何字符都将显示为*.例如,输入的是Hcq,显示的则是*. 但是,文本框的Password Char属性并不影响Text属性,尽管在文本框中显示的是在Password Char属性中指定的字符,但Text属性返回的仍然是用户输入的实际内容。根据这一点,可以编写一个验证密码的小程序。 实例5.7 验证密码 在该程序中,要求用户输入密码,如果输入正确,则用户可以继续下一步操作,否则,在窗体上显示密码输入错误,请再试一次!,并且用户只有三次输入密码的机会,如果三次输入错误,则文本框变为无效,不能接受用户的任何输
22、入。在本例中,认为正确的密码为abcd. 单击【添加窗体】按钮向当前工程中再添加一个窗体,其中一个窗体用作验证密码。在用作验证密码的窗体上放置两个标签控件、一个文本框控件和一个按钮控件,如图5.21所示。各对象属性设置如表5.14所示。在另一个窗体上放置一个标签控件和一个按钮控样,如图5.22所示,各对象的属性如表5.15所示。双击验证密码窗体中的【确定】按钮,打开【代码】窗口,将下列代码添加到ComOk_Click事件过程中:Private Sub ComOK_Click() Static i As Integer If i=2 Then If TexPass.Text=“abcd”Then
23、 Unload ForPass Formain.Show Else LabMsg.Caption=“密码错误,请再试一遍! Else LabMsg.Caption=“三次输入错误,拒绝重新输入! TextPass.Enabled=False i=i+1 在该段代码中,首先定义了一个静态变量i,它用来记录用户输入密码的次数。i的初值为O,每单击一次按钮,则i的值增1(i=i+1).然后使用If语句来判断i的值,如果i的值小于3,即用户输入密码不超过三次,又使用了一个If语句来判断用户所输入的密码是否正确。如果正确(即输入的是abcd),则验证密码窗体消失,同时启动另一个窗体。如果输入的密码不正确
24、,则会在窗体的标签上显示密码错误,请再试一遍!.如果第三次输入密码也不正确,此时i的值已经累加到3.再次输入密码,程序不会再判断密码是否正确(因为13 ),而是在窗体上显示三次输入错误,拒绝重新输入!,并且将文本框置为无效。因此,即便是用户在第四次输入了正确的密码,也无济于事。双击另一个窗体上的按钮控件,将程序结束语句End添加到按钮的Click事件中,如下所示: Private Sub ComMain_Click() End 在【工程属性】对话框中设置启动窗体为ForPass,运行该程序,则出现【验证密码】窗体,在文本框中输入字符串abcd,文本框中显示的是*,如图5-23所示。单击【确定】
25、按钮,则验证密码窗体消失,另一个窗体显示出来,如图5.24所示。单击【关闭】按钮可以退出该程序。 再次运行该程序,在【验证密码】窗体的文本框中随意输入一个字符串(不是abcd),单击【确定】按钮,则窗体上显示.如图5.25所示。连续三次输入错误的密码,当第四次输入密码时,无论密码正确与否,单击【确定】按钮则窗体上显示,并且将文本框置为无效,用户无法继续输入密码,如图5.26所示。5.3.5 Change事件文本框也有Click, DblClick等事件,但文本框的这些事件并不常用。文本框较常用的一个事件是Change事件,一旦文本框中的内容被改变,就会触发它的Change事件。 实例5.8利用Change事件 在该程序中,用户在文本框中输入内容时,窗体上就会同步显示出用户所输入的内容。并且如果用户修改了文本框内容,则窗体上的内容也会同步修改。 要使窗体上显示的内容总是与文本框中的内容同步改变,需要使用文本框的Change事件,因
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1