本年度VB学习材料
发布时间:2012-12-25
点击:
来源:本站原创
录入者:毛宇凯
第一节——Label 控件
在第一章,我们已经知道,任何一个 VB 程序都是由操作界面及与之相应的程序代码组成,而操作界面则是由诸如“命令按钮控件”、“标签控件”等控件以及窗体共同组成。从本章开始,我们进入控件的学习过程。
Label(标签控件)是图形控件,主要作用在于显示文字信息,如大家比较熟悉的程序安装界面:在某个软件安装过程中,常常会显示一些帮助信息或与产品相关的介绍信息,而这些,大多是用标签控件制成的。
与以后我们要学到的文本框控件(TextBox)不同的是,标签控件显示的文字不能直接进行修改,要修改的话只能在设计阶段进行;文本框既可以用来显示文本,还能够在文本框中输入文本。
在 Visual Basic 工具箱中,标签控件的图标如图一所示。标签的默认名称(Name)和标题(Caption)为 LabelX(X为1、2、3,等等),规范的命名方式为:LblX(X为自己定义的詞,如 LblShow 、LblRed ,等等)
图一
一、标签控件的主要属性:
1、Caption(标题)属性:
此属性用来设置在标签上显示的文本信息,可以在创建界面时设置,也可以在程序中改变文本信息,如第一章的例子中,通过点击按钮改变标签显示的字样。
1、Caption(标题)属性:
此属性用来设置在标签上显示的文本信息,可以在创建界面时设置,也可以在程序中改变文本信息,如第一章的例子中,通过点击按钮改变标签显示的字样。
如果要在程序中修改标题属性,代码规则如下:
标签名称.Caption = "欲显示的文本"
如第一章在程序中改变标签 LblShow 的 Caption 属性:
LblShow.Caption = "跟我来学 VB 神童教程"
但是请大家注意,上面的代码应该写入供触发的控件对应的程序代码区,如第一章中,是在命令按钮的程序代码区输入的代码,而不是标签本身的代码区哟。
这也是初学者常常大惑不解的地方,为什么我要让标签改变字样,却要在其他控件中输入代码?这是因为,我们是通过触发其他控件这个事件来让标签改变 Caption 属性的。
当然,你也可以让标签本身来触发 Caption 属性改变事件,如用鼠标点击标签,这时你就需要在标签对应的程序代码区输入代码了,但在实际编写中,这种情况非常罕见。毕竟,标签控件用于显示信息的本意远远超过了响应鼠标点击的意图。
2、BorderStyle(边框)属性:
本属性用来设置标签的边框类型,有两种值可选:0,代表标签无边框;1,代表标签有边框,并且具有三维效果,如图二显示的两个标签:
本属性用来设置标签的边框类型,有两种值可选:0,代表标签无边框;1,代表标签有边框,并且具有三维效果,如图二显示的两个标签:
图二
BorderStyle 属性可以在设计界面时指定,如图三:
图三
也可以在程序中改变(但这种应用不多见),程序代码规则:
标签名.BorderStyle = 0/1(0或1,两者取一)
习题一:创建一个标签(LblShow)、两个按钮(CmdChange1、CmdChange2),点按 CmdChange1 ,标签有边框;点按 CmdChange2 ,标签无边框。
答案:见本节最后的答案区。
3、Font(字体)属性:
本属性用来设置标签显示的字体,既可以在创建界面时设定,也可以在程序中改变。
本属性用来设置标签显示的字体,既可以在创建界面时设定,也可以在程序中改变。
在创建界面时设定,如图四:
图五
也可以在程序中改变,代码如下:
标签名.Alignment = 0/1/2
5、Visible(可见)属性:
本属性在大多数控件中都有,它能设定该控件是否可见。当值为 True ,控件可见;当值为 False ,控件隐藏。
本属性在大多数控件中都有,它能设定该控件是否可见。当值为 True ,控件可见;当值为 False ,控件隐藏。
控件的可见属性可以在界面设置时设定,如图六:
图一
TextBox 控件主要用来显示文本或用来输入文本,如 Windows 登陆时的“口令”窗口,或者记事本的整个编辑区域。
双击工具箱中的文本框控件或者单击文本控件,然后用鼠标在 VB 的工作区域拖拉,就可以创建文本框了。如图二:
图二
文本框控件的默认名称为 TextX(X为 1、2、3,等等),命名规则为 TxtX(X为用户自定义的名字,如 TxtShow、TxtFont、TxtColor ,等等)
一、文本框控件的主要属性:
1、Text(文本)属性:
本控件最重要的属性,用来显示文本框中的文本内容,可以在界面设置时指定,如图三:
1、Text(文本)属性:
本控件最重要的属性,用来显示文本框中的文本内容,可以在界面设置时指定,如图三:
图三
也可以在程序中动态修改,程序代码规则:
文本框控件名.Text = "欲显示的文本内容"
如要在一个名为 TxtFont 的文本框控件中显示“隶书”字样,那么输入代码:
TxtFont.Text = "隶书"
习题一:创建一个文本框(TxtContent)用来显示文本;按钮一(Cmd1),点击时文本框内容变为“跟我来学VB神童教程”;按钮二(Cmd2),点击时文本框内容清空(也就是没有内容)。
答案:见答案区。
2、SelText(选中文本)属性:
本属性返回或设置当前所选文本的字符串,如果没有选中的字符,那么返回值为空字符串即""。
本属性返回或设置当前所选文本的字符串,如果没有选中的字符,那么返回值为空字符串即""。
请注意,本属性的结果是个返回值,或为空,或为选中的文本。
一般来说,选中文本属性跟文件复制、剪切等剪贴板(在 VB 中,剪贴板用 Clipboard 表示)操作有关,如要将文本框选中的文本拷贝到剪贴板上:
Clipboard.SetText 文本框名称.SelText(注意,本行没有表示赋值的等号。)
要将剪贴板上的文本粘贴到文本框内:
文本框名称.SelText = Clipboard.GetText(注意,本行有表示赋值的等号。)
例:一个文本框(TxtContent),按钮一(CmdCopy)用于复制文本框中的选中文本;按钮二(CmdPaste)用于将剪贴板上的内容粘贴到文本框内。
按钮一:
Private Sub CmdCopy_Click()
Clipboard.SetText TxtContent.SelText
End Sub
Private Sub CmdCopy_Click()
Clipboard.SetText TxtContent.SelText
End Sub
按钮二:
Private Sub CmdPaste_Click()
TxtContent.SelText = Clipboard.GetText
End Sub
Private Sub CmdPaste_Click()
TxtContent.SelText = Clipboard.GetText
End Sub
3、SelStart 与 SelLength 属性:
SelStart ,选中文本的起始位置,返回的是选中文本的第一个字符的位置。
SelLength ,选中文本的长度,返回的是选中文本的字符串个数。 例如:文本框 TxtContent 中有内容如下:
SelStart ,选中文本的起始位置,返回的是选中文本的第一个字符的位置。
SelLength ,选中文本的长度,返回的是选中文本的字符串个数。 例如:文本框 TxtContent 中有内容如下:
跟我一起学习 VB 神童教程
假设选中“一起学习”四个字,那么,SelStart 为 3 ,SelLength 为 4 。
4、MaxLength(最大长度)属性:
本属性限制了文本框中可以输入字符个数的最大限度,默认为 0 ,表示在文本框所能容纳的字符数之内没有限制,文本框所能容纳的字符个数是 64K ,如果超过这个范围,则应该用其他控件来代替文本框控件。
本属性限制了文本框中可以输入字符个数的最大限度,默认为 0 ,表示在文本框所能容纳的字符数之内没有限制,文本框所能容纳的字符个数是 64K ,如果超过这个范围,则应该用其他控件来代替文本框控件。
这跟 Windows 中用记事本打开文件一样,当文件过大,系统会自动调用写字板来打开文件,而不是用记事本。
文本框控件 MaxLength 属性既可以在界面设置过程中予以指定,如图四:
图四
也可以在设计时予以改变,代码如下:
文本框控件名.Maxlength = X(X为阿拉伯数字,如 10、20、57,等等)。
文本框控件名.Maxlength = X(X为阿拉伯数字,如 10、20、57,等等)。
5、MultiLine(多行)属性:
本属性决定了文本框是否可以显示或输入多行文本,当值为 True ,文本框可以容纳多行文本;当值为 False ,文本框则只能容纳单行文本。
本属性决定了文本框是否可以显示或输入多行文本,当值为 True ,文本框可以容纳多行文本;当值为 False ,文本框则只能容纳单行文本。
本属性只能在界面设置时指定,程序运行时不能加以改变。如图五:
图五
6、PasswordChar(密码)属性:
本属性主要用来作为口令功能进行使用。例如,若希望在密码框中显示星号,则可在“属性”窗口中将 PasswordChar 属性指定为 “*” 。这时,无论用户输入什么字符,文本框中都显示星号。如图六:
本属性主要用来作为口令功能进行使用。例如,若希望在密码框中显示星号,则可在“属性”窗口中将 PasswordChar 属性指定为 “*” 。这时,无论用户输入什么字符,文本框中都显示星号。如图六:
图六
在 VB 中,PasswordChar 属性的默认符号是星号,但你也可以指定为其他符号。但请注意,如果文本框控件的 MultiLine(多行)属性为 True ,那么文本框控件的 PasswordChar 属性将不起作用。
习题二:一个文本框 (TxtPassword),PasswordChar 属性指定为星号“*”;一个按钮(CmdShow);另外还有一个标签(LblShow),在初始状态下,Caption 为空。程序目的在于,点击 CmdShow 按钮,LblShow 能显示文本框控件中输入的密码。
答案:见本节后面的答案区。
7、ScrollBars(滚动条)属性:
本属性可以设置文本框是否有滚动条。当值为 0 ,文本框无滚动条;值为 1 ,只有横向滚动条;值为 2 ,只有纵向滚动条;值为 3 ,文本框的横竖滚动条都具有。如图七:
本属性可以设置文本框是否有滚动条。当值为 0 ,文本框无滚动条;值为 1 ,只有横向滚动条;值为 2 ,只有纵向滚动条;值为 3 ,文本框的横竖滚动条都具有。如图七:
图七
8、Locked(锁定)属性:
当值为 False ,文本框中的内容可以编辑;当值为 True ,文本框中的内容不能编辑,只能查看或进行滚动操作。
当值为 False ,文本框中的内容可以编辑;当值为 True ,文本框中的内容不能编辑,只能查看或进行滚动操作。
二、文本框控件的事件:
除了 Click、DbClick 这些不常用的事件外,与文本框相关的主要事件是 Change、GotFocus、LostFocus 事件。
除了 Click、DbClick 这些不常用的事件外,与文本框相关的主要事件是 Change、GotFocus、LostFocus 事件。
1、Change 事件:
当用户向文本框中输入新内容,或当程序把文本框控件的 Text 属性设置为新值时,触发 Change 事件。
当用户向文本框中输入新内容,或当程序把文本框控件的 Text 属性设置为新值时,触发 Change 事件。
2、GotFocus 事件:
本事件又名“获得焦点事件”。所谓获得焦点,其实就是指处于活动状态。在电脑日常操作中,我们常常用 Alt+Tab 键在各个程序中切换,处于活动中的程序获得了焦点,不处于活动的程序则失去了焦点(LostFocus)。
本事件又名“获得焦点事件”。所谓获得焦点,其实就是指处于活动状态。在电脑日常操作中,我们常常用 Alt+Tab 键在各个程序中切换,处于活动中的程序获得了焦点,不处于活动的程序则失去了焦点(LostFocus)。
3、LostFocus 事件:
失去焦点,详情如 上。 例子:一个文本框(TxtContent),默认状态下内容为空;当获得焦点时,文本框内容显示————“大家好,课程还难吗”字样;当失去焦点,文本框 回到初始状态。另外再创建一个标签(LblShow),当用户试图向文本框输入文本或改变文本框本来的文本时,标签显示“标签的作用大家还清楚吗”字样。
失去焦点,详情如 上。 例子:一个文本框(TxtContent),默认状态下内容为空;当获得焦点时,文本框内容显示————“大家好,课程还难吗”字样;当失去焦点,文本框 回到初始状态。另外再创建一个标签(LblShow),当用户试图向文本框输入文本或改变文本框本来的文本时,标签显示“标签的作用大家还清楚吗”字样。
界面如图八:
图八
程序如下:
文本框:
Private Sub TxtContent_GotFocus()
TxtContent.Text = "大家好,课程还难吗"
End Sub
Private Sub TxtContent_GotFocus()
TxtContent.Text = "大家好,课程还难吗"
End Sub
Private Sub TxtContent_LostFocus()
TxtContent.Text = ""
End Sub
TxtContent.Text = ""
End Sub
Private Sub TxtContent_Change()
LblShow.Caption = "标签的作用大家还清楚吗"
End Sub
LblShow.Caption = "标签的作用大家还清楚吗"
End Sub
三、知识点:
1、请记住,Clipboard 指的是 Windows 剪贴板,剪贴板最常用的操作是所选文本的拷贝与粘贴。
1、请记住,Clipboard 指的是 Windows 剪贴板,剪贴板最常用的操作是所选文本的拷贝与粘贴。
拷贝:
Clipboard.SetText 文本框名称.SelText
Clipboard.SetText 文本框名称.SelText
粘贴:
文本框名称.SelText = Clipboard.GetText
文本框名称.SelText = Clipboard.GetText
2、Multiline 属性为 True 时,文本框控件的 PasswrodChar 属性不起作用。
3、如果要让文本框的内容自动换行,只需取消文本框的横向滚动条就行了。
四、答案区:
习题一:
按钮一:
Private Sub Cmd1_Click()
TxtContent.Text = "跟我来学 VB 神童教程"
End Sub
Private Sub Cmd1_Click()
TxtContent.Text = "跟我来学 VB 神童教程"
End Sub
按钮二:
Private Sub Cmd2_Click()
TxtContent.Text = ""
End Sub
Private Sub Cmd2_Click()
TxtContent.Text = ""
End Sub
习题二:
按钮:
Private Sub CmdShow_Click()
LblShow.Caption = TxtPassword.Text
End Sub
Private Sub CmdShow_Click()
LblShow.Caption = TxtPassword.Text
End Sub
在前面两节里,我们学到了 VB 的操作方法,以及 Label 与 TextBox 控件的使用方法,现在我们用这两节学到的知识来做一个简单的文本编辑器。
一、程序最终目的:
用户可以在程序的编辑窗口输入文本;对输入的文本可以进行复制、粘贴、清除操作;另外,还能在两个标签上分别显示选中文本的起始位置、选中文本的长度。
用户可以在程序的编辑窗口输入文本;对输入的文本可以进行复制、粘贴、清除操作;另外,还能在两个标签上分别显示选中文本的起始位置、选中文本的长度。
二、界面设置:
根据程序的要求,我们需要制作一个文本框控件(TxtContent),它将做为程序的输入窗口;另外还有四个按钮,分别是复制按钮(CmdCopy)、粘贴按钮(CmdPaste)、清除按钮(CmdClear)、退出程序按 钮(CmdQuit);此外,还需要两个用来显示所选文本起始位置的标签一(LblStart)和显示所选文本长度的标签二(LblLength)。
根据程序的要求,我们需要制作一个文本框控件(TxtContent),它将做为程序的输入窗口;另外还有四个按钮,分别是复制按钮(CmdCopy)、粘贴按钮(CmdPaste)、清除按钮(CmdClear)、退出程序按 钮(CmdQuit);此外,还需要两个用来显示所选文本起始位置的标签一(LblStart)和显示所选文本长度的标签二(LblLength)。
最终界面如图一:
图一
请大家仿照图一制作。
三、属性设置:
如图一所示,但请注意,文本框控件的 Multiline(多行)属性要设置为 True ,这样,文本框才能自动换行。如图二:
如图一所示,但请注意,文本框控件的 Multiline(多行)属性要设置为 True ,这样,文本框才能自动换行。如图二:
图二
四、程序书写:
1、文本框(TxtContent)的鼠标事件:
对文本的选择,可以理解为这样的过程:先在欲选择的文本前点击鼠标,按下左键不放,拖动鼠标直到选择文本的结束处,最后松开鼠标。这说明,松开鼠标代表着文本选择的结束,从而应该在文本框的鼠标弹起事件(MouseUp)中书写代码,以改变两个标签的标题。
1、文本框(TxtContent)的鼠标事件:
对文本的选择,可以理解为这样的过程:先在欲选择的文本前点击鼠标,按下左键不放,拖动鼠标直到选择文本的结束处,最后松开鼠标。这说明,松开鼠标代表着文本选择的结束,从而应该在文本框的鼠标弹起事件(MouseUp)中书写代码,以改变两个标签的标题。
具体代码如下:
Private Sub TxtContent_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) '括号中这一长串内容大家不必管它,这主要是产生位移时的坐标变动。
LblStart.Caption = "起始位置:" & TxtContent.SelStart LblLength.Caption = "文本长度:" & TxtContent.SelLength End Sub |
注意:这个 “&”符号表示将两个字符串连接起来。另外如: A & B ,结果是 AB ;ABC & EFG ,结果是 ABCEFG ,等等。
2、复制按钮的点击事件:
Private Sub CmdCopy_Click()
Clipboard.SetText TxtContent.SelText End Sub |
3、粘贴按钮的点击事件:
Private Sub CmdPaste_Click()
TxtContent.SelText = Clipboard.GetText End Sub |
4、清空按钮的点击事件:
Private Sub CmdClear_Click()
TxtContent.Text = "" End Sub |
5、退出程序按钮的点击事件:
Private Sub CmdQuit_Click()
End 'End 在 VB 中,代表程序结束,用它可以直接退出程序。 End Sub |
五、运行调试:
按 F5 键,或者点按运行按钮,这个简单的文本编辑器可以用了吗?
按 F5 键,或者点按运行按钮,这个简单的文本编辑器可以用了吗?
六、控件的一些基本操作:
在 VB “菜单栏”中有一个“格式”命令,通过它提供的一些功能可以让我们的工作事半功倍。
在 VB “菜单栏”中有一个“格式”命令,通过它提供的一些功能可以让我们的工作事半功倍。
1、对齐:
分别是纵向对齐的“左对齐”、“居中对齐”、“右对齐”;横向对齐的“顶端”、“中间”、“底端”对齐;以及面向网格的“网格对齐”。它们的功能非常简单,你只需随意绘制几个控件,然后选择它们,再试着使用相关命令就能掌握了。如图三是随意绘制的程序界面:
分别是纵向对齐的“左对齐”、“居中对齐”、“右对齐”;横向对齐的“顶端”、“中间”、“底端”对齐;以及面向网格的“网格对齐”。它们的功能非常简单,你只需随意绘制几个控件,然后选择它们,再试着使用相关命令就能掌握了。如图三是随意绘制的程序界面:
图三
全部选中后,使用“左对齐”的结果如图四:
图四
也许你要问,这个对齐是以哪一个控件做为参照物的?再仔细看看图三,那个 Command1 按钮四周是八个实心的黑色小点,而其他控件则是白色的小点,现在你知道了吧,正是以 Command1 按钮为参照物进行对齐的,也就是说你最后选择的那一个控件。
2、统一尺寸:
以某个控件为参照物,统一其他控件的大小尺寸。
以某个控件为参照物,统一其他控件的大小尺寸。
3、水平间距与垂直间距:
调整某几个控件的水平间距或垂直间距。
调整某几个控件的水平间距或垂直间距。
活用上面几个操作,将使你的工作事半功倍!
在 Visual Basic 操作界面中,CommandButton(命令按钮)控件所代表的图标如图一:
图一
CommandButton 控件在程序中主要作为按钮进行使用。默认的名称为 CommandX(X为 1、2、3,等等),命名规则为 CmdX(X为用户自定义的名字,如 CmdCopy、CmdPaste ,等等)。
一、CommandButton 的主要属性:
1、Cancel(取消)属性:
当一个按钮的 Cancel 属性设置为 True 时,按 ESC 键与单击此命令按钮的作用相同,因此,这个命令按钮被称为取消按钮。
1、Cancel(取消)属性:
当一个按钮的 Cancel 属性设置为 True 时,按 ESC 键与单击此命令按钮的作用相同,因此,这个命令按钮被称为取消按钮。
在一个窗体中,只允许一个命令按钮的 Cancel 属性为 True 。如图二:
图二
2、Default(默认)属性:
当一个按钮的 Default 属性设置为 True 时,按回车键与单击此命令按钮的作用相同,因此,这个命令按钮被称为默认按钮。
当一个按钮的 Default 属性设置为 True 时,按回车键与单击此命令按钮的作用相同,因此,这个命令按钮被称为默认按钮。
与 Cancel 的设置一样,在一个窗体中,只允许一个命令按钮的 Default 属性设置为 True ,如图三:
图三
3、Caption(标题)属性:
跟其他控件的 Caption 属性一样,都用来显示控件标题的属性。这里要强调的是,作为按钮控件,用户可以给按钮控件的 Caption 指定快捷方式。
跟其他控件的 Caption 属性一样,都用来显示控件标题的属性。这里要强调的是,作为按钮控件,用户可以给按钮控件的 Caption 指定快捷方式。
方法是在按钮 Caption 属性中欲作为快捷键的字母前加上一个 “&” 符号,程序运行时,该字母的下面会自带一条下划线,同时按下 Alt 键和带有下划线的字母,功效相当于用鼠标点击该按钮。如图四:
图四
4、Enabled(可用)属性:
本属性决定了控件是否可用的问题。当值为 False ,按钮在程序运行时呈灰色,不能响应用户的鼠标动作;只有当值为 True ,按钮才能使用。
本属性决定了控件是否可用的问题。当值为 False ,按钮在程序运行时呈灰色,不能响应用户的鼠标动作;只有当值为 True ,按钮才能使用。
本属性可以在设置界面时予以指定,如图五:
图五
也可以在程序中修改,代码如下: 按钮控件名称.Enabled = True/False
例一:
两个命令按钮,按钮一(CmdEnable)初始状态为可用,按钮二(CmdFalse)初始状态不可用。点击按钮一,按钮二变为可用,按钮一变为不可用;点击按钮二,按钮一变为可用,按钮二变为不可用。
两个命令按钮,按钮一(CmdEnable)初始状态为可用,按钮二(CmdFalse)初始状态不可用。点击按钮一,按钮二变为可用,按钮一变为不可用;点击按钮二,按钮一变为可用,按钮二变为不可用。
程序界面如图六:
图六
程序代码如下:
按钮一:
Private Sub CmdEnable_Click()
CmdFalse.Enabled = True CmdEnable.Enabled = False End Sub |
按钮二:
Private Sub CmdFalse_Click()
CmdFalse.Enabled = False CmdEnable.Enabled = True End Sub |
5、Style(类型)与 Picture(图片)属性:
也许你想让应用程序的操作界面更美观一点,也许你想在某个按钮上添加幅小图片,那么,你就得使用到本控件的 Style 与 Picture 属性。
也许你想让应用程序的操作界面更美观一点,也许你想在某个按钮上添加幅小图片,那么,你就得使用到本控件的 Style 与 Picture 属性。
铵钮控件共有两种 Style ,一种是标准型(Standard),VB 中用 VbButtonStandard ,或者 0 表示;另外一种是图形型(Graphical),VB 中用 VbButtonGraphical ,或者 1 表示。
Style 属性可以在界面设置过程中予以指定,如图七:
图七
也可以在程序中改变,代码如下:
按钮名称.Style = VbButtonStandard/VbButtonGraphical
或者:按钮名称.Style = 0/1
只有当按钮的 Style 设置为 Graphical 类型时,按钮的 Picture 属性才起作用。本属性能在指定的按钮上添加图片。
可以在界面设置过程中为按钮指定图片,如图八:
图一
以前讲到的大多数属性都适用于单选与复选控件,包括:Caption、Enabled、Font(FontBold、FontItalic、FontName,等等)、Name、Height ,等等,此处不再赘述。
Value 属性是单选与复选控件最主要的属性,但单选与复选控件的 Value 值有些微的差别。
单选控件:
选中时,Value 值为 True ;未被选中,Value 值为 False 。
选中时,Value 值为 True ;未被选中,Value 值为 False 。
复选控件:
选中时,Value 值为 1 ;未被选中,Value 值为 0 ;禁止对该按钮进行选择, Value 值为 2 。
选中时,Value 值为 1 ;未被选中,Value 值为 0 ;禁止对该按钮进行选择, Value 值为 2 。
请大家注意,单选控件与复选控件的 Value 值是不同的,而这是初学者最容易混淆的。
二、单选按钮与复选按钮的事件:
这两种控件最主要的事件是 Click 事件,当选中时,Value 值变为 True 或者 1 ,控件也自动变为选中状态。
这两种控件最主要的事件是 Click 事件,当选中时,Value 值变为 True 或者 1 ,控件也自动变为选中状态。
三、单选按钮程序举例:
有如图二这样一个程序:
有如图二这样一个程序:
图二
文本框(TxtContent)显示预设的字样;单选按钮一(OptArial),单击此按钮可以将文本框里显示的字样改变成 Arial 字体;单选按钮二(OptModern),单击此按钮能将文本框里显示的字样改变成 Modern 字体。
1、单选按钮一:
Private Sub OptArial_Click()
TxtContent.FontName = "Arial"
End Sub
Private Sub OptArial_Click()
TxtContent.FontName = "Arial"
End Sub
2、单选按钮二:
Private Sub OptModern_Click()
TxtContent.FontName = "Modern"
End Sub
Private Sub OptModern_Click()
TxtContent.FontName = "Modern"
End Sub
四、复选按钮的判断过程:
复选按钮的使用跟单选按钮相似,但由于一次可以选择多个复选按钮,所以复选按钮的选择比单选按钮多了一个判断过程。
复选按钮的使用跟单选按钮相似,但由于一次可以选择多个复选按钮,所以复选按钮的选择比单选按钮多了一个判断过程。
这个判断过程在 VB 中可以用 If···Then···ElseIf···End If 语句完成。
If···Then···ElseIf···End If 是 VB 中的块结构条件语句,主要用来针对不同的情况,让应用程序做出不同的反应。
语句功能如下:
语句功能如下:
If 假设情况一 Then
假设情况一成立时执行的语句块一
[ElseIF 假设情况二 Then
假设情况二成立时执行的语句块二]
[ElseIf 假设情况三 Then
假设情况三成立时执行的语句块三]
······
[Else
所有条件都不成立时要执行的语句块]
End If
假设情况一成立时执行的语句块一
[ElseIF 假设情况二 Then
假设情况二成立时执行的语句块二]
[ElseIf 假设情况三 Then
假设情况三成立时执行的语句块三]
······
[Else
所有条件都不成立时要执行的语句块]
End If
上面的语句块含义为:如果“情况一”成立,则执行“语句块一”;否则如果“情况二”成立,则执行“语句块二”······;如果所有情况都不成立,则执行 Else 之后的语句块并最后跳出判断过程。
例:
假设输入学生成绩(Score),如果分数小于 60 ,标签(LblShow)显示“成绩不及格”;如果分数大于 90 ,标签显示“成绩优秀”;如果分数介于两者之间,标签显示“成绩优良”。
假设输入学生成绩(Score),如果分数小于 60 ,标签(LblShow)显示“成绩不及格”;如果分数大于 90 ,标签显示“成绩优秀”;如果分数介于两者之间,标签显示“成绩优良”。
If Score < 60 Then
LblShow.Caption = "成绩不及格"
ElseIf Score > 90 Then
LblShow.Caption = "成绩优秀"
Else
LblShow.Caption = "成绩优良"
End If
LblShow.Caption = "成绩不及格"
ElseIf Score > 90 Then
LblShow.Caption = "成绩优秀"
Else
LblShow.Caption = "成绩优良"
End If
有几点必须加以注意:
(1)、在上面的语句块中,ElseIf 之间没有空格,如果有空格即 Else If ,块结构则不成立。Else If 这种形式只能在单行结构条件语句中成立,而不能在块结构条件中成立。
(1)、在上面的语句块中,ElseIf 之间没有空格,如果有空格即 Else If ,块结构则不成立。Else If 这种形式只能在单行结构条件语句中成立,而不能在块结构条件中成立。
(2)、执行语句块的程序代码不能紧跟 Then ,必须放到下一行中,这是块状结构的规定。
(3)、在块结构判断语句中,ElseIf 子句的数量没有限制,可以根据需要加入任意多个 ElseIf 子句。
(4)、ElseIf 与 Else 都是可选的,最简单的判断语句块形式如下:
If 条件 Then
要执行的语句块
End If
要执行的语句块
End If
如:If Score < 60 Then
LblShow.Caption = "成绩不及格"
End If
LblShow.Caption = "成绩不及格"
End If
(5)、块结构语句必须以 If 开始,以 End If 结束。
五、复选按钮举例:
上面我们学习了复选按钮的判断过程,现在进入实例学习。 有如图三这样一个应用程序:
上面我们学习了复选按钮的判断过程,现在进入实例学习。 有如图三这样一个应用程序:
图三
文本框(TxtContent)显示预设的字样;复选按钮一(ChkBold)可以将文本框里面的字变为粗体;复选按钮二(ChkItalic)可以将文本框里面的字变为斜体;复选按钮三(ChkUnderline)可以给文本框里面的文字加上下划线。
复选按钮一:
Private Sub ChkBold_Click()
If ChkBold.Value = 1 Then
TxtContent.FontBold = True
Else
TxtContent.FontBold = False
End Sub
Private Sub ChkBold_Click()
If ChkBold.Value = 1 Then
TxtContent.FontBold = True
Else
TxtContent.FontBold = False
End Sub
复选按钮二:
Private Sub ChkItalic_Click()
If ChkItalic.Value = 1 Then
TxtContent.FontItalic = True
Else
TxtContent.FontItalic = False
End Sub
Private Sub ChkItalic_Click()
If ChkItalic.Value = 1 Then
TxtContent.FontItalic = True
Else
TxtContent.FontItalic = False
End Sub
复选按钮三:
Private Sub ChkUnderline_Click()
If ChkUnderline.Value = 1 Then
TxtContent.FontUnderline = True
Else
TxtContent.FontUnderline = False
End Sub
Private Sub ChkUnderline_Click()
If ChkUnderline.Value = 1 Then
TxtContent.FontUnderline = True
Else
TxtContent.FontUnderline = False
End Sub
还是上面这个例子,假设复选按钮一不经过判断,而直接在点击事件中输入代码:
Private Sub ChkBold_Click()
TxtContent.FontBold = True
End Sub
Private Sub ChkBold_Click()
TxtContent.FontBold = True
End Sub
那么你会发现,复选按钮一经点击就不能取消字体加粗的效果了;而实际上,复选按钮一的功能是,点击一次即选中时,字体加粗;点击第二次即取消选择,字体不再加粗;以此类推。
六:知识点:
1、切记,单选按钮与复选按钮的 Value 值是不同的。
1、切记,单选按钮与复选按钮的 Value 值是不同的。
单选按钮:
选中时,Value 值为 True ;未被选中时,Value 值为 False 。
选中时,Value 值为 True ;未被选中时,Value 值为 False 。
复选按钮:
选中时,Value 值为 1 ;未被选中时,Value 值为 0 ;禁止选择,Value 值为 2 。
选中时,Value 值为 1 ;未被选中时,Value 值为 0 ;禁止选择,Value 值为 2 。
你可以试验一下,将复选按钮的 Value 值分别用 True/False 代替,看一下会出现什么问题。
2、两种选择按钮都针对 Click 事件做出反应,但单选按钮比较简单,只需直接输入代码即可;复选按钮比较复杂,需经过条件判断后再做出反应。切记!
3、 If···Then···ElseIf···End If ,只是条件判断方法的一种,以后我们还会学到其他的方法。
在前面两节中,我们学习了命令按钮(CommandButton)、单选按钮(OptionButton)、复选按钮(CheckBox)的使用,本节将就前两节的知识做个总结。
一、程序目的:
通过选项按钮的选择,对所选文本进行定制。
通过选项按钮的选择,对所选文本进行定制。
二、程序界面:
程序界面如图一:
程序界面如图一:
图一
一个文本框(TxtContent),显示“Learning Visual Basic”字样;三个单选按钮:按钮一(OptArial)让文本字体变为 Arial 类型;按钮二(OptModern)让文本字体变为 Modern 类型;按钮三(OptRoman)让文本字体变为 Times New Roman 类型;三个复选按钮:按钮一(ChkBold),让文本字体变为黑体;按钮二(ChkItalic),让文本字体变为斜体字;按钮三(ChkUnderline),给文本增加下划线。另外,还有一个退出按钮(CmdQuit),作用在于退出程序。
三、属性设置:
根据图一进行属性设置。
根据图一进行属性设置。
四、书写程序:
OptArial 按钮:
Private Sub OptArial_Click() TxtContent.FontName = "Arial" End Sub OptModern 按钮:
Private Sub OptModern_Click() TxtContent.FontName = "Modern" End Sub OptRoman 按钮:
Private Sub OptRoman_Click() TxtContent.FontName = "Times New Roman" End Sub ChkBold 按钮:
Private Sub ChkBold_Click() If ChkBold.Value = 1 Then TxtContent.FontBold = True Else TxtContent.FontBold = False End Sub ChkItalic 按钮:
Private Sub ChkItalic_Click() If ChkItalic.Value = 1 Then TxtContent.FontItalic = True Else TxtContent.FontItalic = False End Sub ChkUnderline 按钮:
Private Sub ChkUnderline_Click() If ChkUnderline.Value = 1 Then TxtContent.FontUnderline = True Else TxtContent.FontUnderline = False End Sub CmdQuit 按钮:
Private Sub CmdQuit_Click() End End Sub |
五、分组控件(Frame)的学习:
从前面学到的知识我们知道,单选按钮只能多选一,那么,下面这种分组选项的选择又该如何制作呢?如图二:
从前面学到的知识我们知道,单选按钮只能多选一,那么,下面这种分组选项的选择又该如何制作呢?如图二:
图二
在图二中,既可以选择性别,又可以选择年级,它们是通过选项框分组控件(Frame)得以实现的。
简单地说,选项框控件是将不同的选项分类,在某一类里只能多选一,但多个类别的交叉使用,可以完成比较复杂的多项选择。
不仅仅如此,我们还可以将单选按钮、多选按钮分组,不同组内的操作不会影响其他组的操作。如图三:
图三
分组控件的制作方法:
先在窗体上绘制合适大小的框架,然后点选单选控件或多选控件,最后将鼠标移到框架内并拖拉出选项按钮。
先在窗体上绘制合适大小的框架,然后点选单选控件或多选控件,最后将鼠标移到框架内并拖拉出选项按钮。
注意:请不要使用双击选择按钮控件然后将其拖动到分组框内的办法,否则,分组会失败。
附件:
![]() ![]() |