第3章基本控件_第1页
第3章基本控件_第2页
第3章基本控件_第3页
第3章基本控件_第4页
第3章基本控件_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 基本控件3.1 基本概念 在窗体上用于输入、输出信息的图形或文字符号称为控件。控件是构成用户界面的基本元素,为了方便用户开发应用程序,VB提供了三类控件:标准控件(或称内部控件)是Windows本身的资源,如工具箱中的标准控件(共20个),不能添加和删除;ActiveX控件(外部控件)ActiveX控件是一个提供特定功能的二进制对象。程序开发人员可以把ActiveX控件添加到自己编写的程序中。ActiveX控件是扩展名为.Ocx的控件;可插入控件可插入对象也是一种ActiveX控件,只是插入的对象本身就是一个应用程序。由于可插入对象也能够添加到工具箱内,因此可插入对象使用与使用工具箱中

2、普通控件一样。表3-1 窗体与标准控件基本属性Name (名称)Name(名称)属性指所创建对象的名称(建议窗体用汉字命名,控件一般使用系统默认名)。Caption Caption属性用于设置控件上显示的文字内容。Height、Width、Top、Left 这四个属性用于设置控件的高度、控件的宽度、控件离屏幕顶部的距离、控件离屏幕左边的距离。Enabled Enabled属性用于设置对象的可操作性(其值为:True、False)。Visible Visible属性用于设置对象的可见性(其值为:True、False)。Font Font属性用于设置对象的字体。ForeColor ForeColo

3、r属性用于设置对象的前景颜色(字体颜色)。BackColor BackColor属性用于设置对象的背景颜色。BorderStyleBorder Style属性用于设置对象的边框样式(0:无,1:单边)。AlignmentAlignment属性用于设置对象的对齐方式(0:左对齐,1:右对齐,2:居中)AutoSize 当对象的AutoSize属性为True时:自动调整大小;当AutoSize属性为False时:不可调,若正文太长则自动裁掉。WordWarp 当对象的Word Warp属性为True时:垂直方向显示文本。TabIndexTabIndex属性用于决定按下Tab键时,焦点在各个控件中移

4、动的顺序。ToolTipText 设置鼠标暂停在控件上显示的提示。可以通过属性窗口,也可以通过程序设置,例如:Label1.ToolTipText = 提示! 3.2 命令按钮(CommandButton)命令按钮是VB应用程序中最常用的控件,它的默认名称(Name)和标题(Caption)都为CommandX(X为编号,从1,2,依次顺延)。在应用程序中,命令按钮主要用于运行某一个事件过程。在运行时可以用鼠标、键盘按下述方法选择操作命令按钮:用鼠标单击按钮;按 TAB 键,将焦点转移到按钮上,然后按 SPACEBAR 或 ENTER 键选定按钮;按命令按钮的快捷键(ALT+ 带有下划线的字母

5、);若命令按钮是窗体的缺省命令按钮,直接按 ENTER 键选定按钮;若命令按钮是窗体的缺省取消按钮,则可按 ESC 键选定按钮;单击它时将调用已写入其Click 事件过程中的命令。3.2.1常用属性 1、Caption属性2、Default属性 用于使用文字来标识命令按钮的功能,最多255个字符。用于设置第一个可执行的命令按钮,其缺省属性值为False。 对象.Default= True 或者对象.Default= False该属性用于设置默认的第一个可执行的取消命令按钮,其缺省属性值为False。当窗体中有多个命令按钮时,只能将其中一个命令按钮的Cancel属性值设置为True,程序运行后,

6、不管焦点在哪个控件上,按Esc键,就等于单击了该按钮。该属性设计时可以通过属性窗口设置,也可以在程序运行时通过代码进行设置,语句格式为:对象.Cancel= True 或者对象.Cancel= False3、Cancel属性4、Value属性该属性在设计时可以通过属性窗口设置。Value值若为True表示该按钮被按下,并触发该命令按钮的Click事件。Value属性缺省值为False,表示未选择按钮。该属性也可以在程序运行时通过代码进行设置,来触发命令按钮的 Click 事件,语句格式为:对象.Value=True 或者对象.Value=False例如:Private Sub Command1

7、_Click() Command2.Value = True 在代码中触发Command2的 Click 事件End SubPrivate Sub Command2_Click() Print 单击Command1触发Command2的Click事件End Sub5、Style属性该属性用来设置命令按钮外观。只能在设计时通过属性窗口设置,Style属性共有二个属性值0、1,缺省值为0。属性值的含义见下表: 表3-2 按钮的style属性0:(Standard)标准命令按钮上不能显示图形和背景颜色。1:(Graphical)图形命令按钮上可显示图形,还可以改变按钮颜色。当Style属性设置为图形

8、后,可以用 Picture、DownPicture 和 DisabledPicture 属性或LoadPicture()函数加载图片增强视觉效果。比如要向命令按钮添加图标或位图,或者在单击、禁止控件时显示不同的图象。例如:Private Sub Form_Load() Command1.DownPicture = LoadPicture(c:PLANE2.ICO)End SubPrivate Sub Command1_Click() Command1.DownPicture = LoadPicture(c:PLANE2.ICO)End Sub6、DownPicture属性该属性在设计时可以通过

9、属性窗口设置返回或设置一个对图片的引用。该图片在控件被单击并处于压下状态时显示在控件中。该属性也可以在程序运行时通过代码进行设置,语句格式为:对象.DownPicture = 图片 7、DisabledPicture 属性该属性在设计时可以通过属性窗口设置,用于返回或设置一个对图片的引用。当控件 Enabled 属性被设置为 False 时,该图片在控件无效时显示在控件中。该属性也可以在程序运行时通过代码进行设置,语句格式为:对象.DisabledPicture = 图片 8、ToolTipText属性该属性在设计时可以通过属性窗口设置,用于返回或设置一个工具提示。当用户定义了图形按钮后,设计

10、时可以设置ToolTipText属性中的文字提示,以解释按钮的功能。使用前提是该命令按钮可用,即Enabled属性为True。该属性也可以在程序运行时通过代码进行设置,语句格式为:对象.ToolTipText = 字符串3.2.2 常用事件鼠标事件:MouseDown:按下鼠标按钮时触发;MouseUp:释放鼠标时触发;MouseMove:鼠标指针在对象上移动时触发键盘事件:KeyDown:键盘按下时触发;KeyPress:单击键盘时触发;KeyUp:松开键盘时触发焦点事件:GotFocus:对象获得焦点时触发;LostFocus:对象失去焦点时触发,主要用来对更新进行验证和确认3.2.3 应

11、用举例Command1.Visible =False命令按钮不可见Command1.Enabled=True 命令按钮无效 Command1.Default =True 使命令按钮成为缺省的活动按钮,可用Enter键选中Command1.Cancel =True 使命令按钮成为缺省的取消按钮,可用Esc键选中例如:设计一个输入密码的界面,如图3-1所示。程序运行后,在文本框内输入密码,然后单击命令按钮确定或按回车键确定密码输入,若密码正确文本框内显示密码输入正确!字样;反之,密码错误在窗体标题上显示密码有误,重新输入字样。图3-1 输入密码对象属性设置见下表:表3-3 输入密码的界面对象对象属

12、性设置窗体NameForm1Caption请输入密码ControlBoxFalse文本框NameText1PasswordChar*命令按钮1NameCommand1Caption确定命令按钮2NameCommand2Caption结束程序代码如下:Private Sub Form_Load() Show 必须有此语句 Text1.Text = Text1.SetFocusEnd SubPrivate Sub Command1_Click()Dim password As Stringpassword = Text1.Text If password = 1234 Then Text1.Pas

13、swordChar = 清除PasswordChar属性设置Text1.Text = 密码输入正确! Else Form1.Caption = 密码有误,重新输入 Text1.Text = Text1.SetFocus End IfEnd SubPrivate Sub Command2_Click() EndEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 判断是否按了回车键 Command1_Click 执行Command1的单击事件 End IfEnd Sub3.3文本框与标签框标签(L

14、abel)控件是VB中输出文本信息的常用工具,目前几乎取代了Print方法。主要用来在固定位置显示文本,且仅用于显示文本。它所显示的内容只能用Caption属性来设置或修改,不能直接编辑。标签常用来标注自身没有Caption属性的控件,如用标签为文本框、列表框和组合框等控件附加描述性信息。标签的默认名称(Name)和标题(Caption)都为LabelX(X为编号,从1,2,依次顺延)。 3.3.1标签(标签(Label)控件)控件1. 常用属性标签的部分属性,如名称、Caption、BorderStyle、Enabled、ForeColor 、Font、 Height、Visible 、Wi

15、dth、Top与 Left等属性,与窗体及其他控件属性相同。另外,还可以使用如下属性:l Alignment 属性l AutoSize 属性 l BackStyle 属性 l WordWrap属性 该属性用来确定标签中文本对齐方式。设计时可以通过属性窗口设置,共有三个属性值。属性值的描述见下表:表3-4 标签控件Alignment属性设置值(1)Alignment 属性常数设置值描述VbLeftJustify0(缺省值)文本左对齐。VbRightJustify1文本右对齐VbCenter2文本居中该属性的设置也可以在程序运行时通过代码进行设置,语句格式为:对象.Alignment = 常数/设

16、置值(2)AutoSize 属性该属性用来设置标签是否能够根据标题的内容自动调整大小。设计时可以通过属性窗口设置,共有两个属性值,缺省值为False。当设置值为True时,标签可根据其中标题的内容自动调整大小,即把所有的文本都显示出来;设置值为False时,不论标题内容有多少,标签保持设计时定义的大小,超出的部分不显示。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.AutoSize = False/True(3)BackStyle 属性该属性用来设置Label 控件或 Shape 控件的背景是透明的还是非透明的。设计时可以通过属性窗口设置,共有两个属性值0、1,缺省值为1。当

17、设置值为1时,Label 控件的背景是非透明,用控件的 BackColor 属性设置值填充该控件,并隐藏该控件后面的所有颜色和图片。若设置值为0时,Label 控件的背景是透明的,控件后的背景色和任何图片都是可见的。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.BackStyle = 1/0(4)WordWrap属性该属性用来设置标签是否可以在垂直方向上变化大小以适应标题内容的大小。设计时可以通过属性窗口设置,共有两个属性值False和True,缺省值为False。当设置值为True时,则标签可以在垂直方向上变化,但AutoSize的值必须也为True,否则标签不能在垂直方向

18、上变化。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象. WordWrap =False/True注意:若要标签在水平方向上变化大小以适应标题内容的大小,AutoSize的值为True,WordWrap 的值为False。2. 常用事件(1)Change事件:当标签的内容更改时触发Change事件。(2)Click 事件:单击事件,点击标签触发该事件。(3)DblClick事件:双击事件,双击标签时触发该事件。3. 其它用法标签除了直接在设计时设置之外,也常在运行时使用程序代码来显示时间。Time$是一个与时间有关的函数,由于它的返回值是字符串,因此可以把它赋值给标签的标题,这

19、样就可以用标签来显示时间。例如:Label1.caption=Time$当要在标签中同时显示2行以上的字符串,可以通过程序代码实现,在字符串之间加上chr$(13)+ chr$(10)控制码(分别表示回车和换行字符)。例如:Label1.Caption = Time$ & Chr$(13) + Chr$(10) & Date$3.3.2 3.3.2 文本框(文本框(TextBoxTextBox) 控件控件1. 常用属性文本框(TextBox)是一个文本编辑区,用户可在文本区输入、编辑、修改文本,也可以显示文本。文本框的默认名称(Name)和Text属性缺省值为TextX(X为编

20、号,从1,2,依次顺延)。文本框的部分属性,如名称、BorderStyle、Enabled、Forecolor 、Font、 Height、Visible 、Width、Top与 Left等属性与窗体及其他控件的属性相同。另外,还可以使用如下属性:(1)Locked 属性该属性用于设置文本框是否可编辑。设计时可以通过属性窗口设置,共有两个属性值,缺省值为False,表示可以编辑文本框中的文本;当属性设置值为True,表示不能编辑文本框中的文本,但可以在运行时通过程序代码改变文本框中的内容。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象. Locked =False/True(2

21、)Maxlength 属性该属性用于设置文本中输入字符的最大长度。设计时可以通过属性窗口设置,缺省值为“0”。指出对于用户系统上单行 TextBox 控件来说,最大值不能超过被内存强制建立的值,并且对于多行 TextBox 控件而言,最大值大约为 32K。任何大于0的数表示字符数的最大值。该属性的设置也可以在程序运行时通过代码进行设置,语句格式为:对象. Maxlength =数值注意:VB中所有的字符长度均为“双字节”。(3)Multiline 属性该属性用于设置TextBox中的文本能否换行。设计时可以通过属性窗口设置,共有两个属性值,缺省值为False。若其属性值为False,则Text

22、Box中的文本不能换行;若其属性值为True, ScrollBars设置为 None (0),则无滚动条。注意:Multiline和Scrollbars属性只能在设计时设置,不能在运行时通过程序代码设置。(4)Text 属性该属性用于显示文本框中的信息。设计时可以通过属性窗口设置,缺省值为Text1。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.Text =字符串注意:若在文本框中进行多行输入,要把MultiLine 属性设置为 True。换行输入,按Ctrl+回车键;结束输入,则按回车键。见图3-2所示。图3-2 文本框的多行输入另外,MultiLine 属性设置为Fals

23、e,Textbox 控件的Text设置值最多可以有2048个字符,反之为32K。(5)Scrollbars属性该属性用于设置TextBox是否具有滚动条,并设置滚动条的样式。只能在设计时通过属性窗口设置,共有四个属性值,属性值的描述见下表:表3-5 文本框控件Scrollbars属性设置值常数设置值描述VbSBNone0(缺省值)无滚动条VbHorizontal1水平滚动条VbVertical2垂直滚动条VbBoth3水平、垂直两种滚动条(6)PasswordChar 属性该属性用于设置用何种显示字符掩饰用户输入的字符(常用于密码口令的输入)。设计时可以通过属性窗口设置,将 PasswordC

24、har 设置为长度为 0 的字符串 ( ) (缺省值),将显示实际的文本。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.PasswordChar =字符串例如:每次单击窗体,文本将在星号 (*) 密码和普通文本之间转换。Private Sub Form_Click() If Text1.PasswordChar = Then Text1.PasswordChar = * Else Text1.PasswordChar = End IfEnd Sub注意:能够将任意字符串赋予此属性,但只有第一个字符是有效的,其余的字符将被忽略;另外,如果 MultiLine 属性被设为True

25、,那么设置PasswordChar属性将不起作用。 (7)TabStop 属性该属性用于设置文本框是否能够获得焦点。设计时可以通过属性窗口设置,缺省值为True。若该属性值为True,表示使用Tab键能将焦点移动到该对象;若该属性值为False,表示当用户按下 Tab 键时,将跨越该对象,虽然该对象仍然在实际的 Tab 键顺序中保持其位置,按照 TabIndex 属性的决定。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.TabStop =True/False (8)TabIndex 属性该属性用于返回或设置父窗体中大部分对象的 Tab 键次序。设计时可以通过属性窗口设置,缺省

26、情况下,在窗体上画控件时 VB 会分配一个 Tab 键顺序,TabIndex 属性值 “Index”是从0 到 (n-1) 的整数。该属性设置也可以在程序运行时通过代码进行设置,语句格式为:对象.TabIndex = index (9)SelStart 属性SelStart是运行时属性,用于返回或设置焦点(光标)在文本框中文本的位置(文本的起始位置为0)。该属性在设计时不可用。语句格式为:对象.SelStart =数值表达式(10)SelLength属性SelLength是运行时属性,用于返回或设置文本框中选择的字符数。该属性在设计时不可用。语句格式为:对象.SelLength =数值表达式(

27、11)SelText属性SelText是运行时属性,用于返回或设置文本框中所选择文本的字符串。如果没有字符被选中,则为零长度字符串 ()。该属性在设计时不可用。语句格式为:对象.SelText =字符串表达式SelStart、SelLength、SelText这几个运行时设置的属性,常用在文本编辑中设置插入点及范围、选定字符串、清除文本等。 2. 常用事件 文本框支持Click、 DblClick等鼠标事件,同时也支持如下事件: Change事件:当用户向文本框中输入新的文本,或在程序运行中对文本框的Text属性进行更改时,都将触发其Change事件。 GotFocus事件:对象获得焦点事件。

28、当运行程序时用Tab键或用鼠标选择对象,或用SetFocus方法使焦点(光标)定位在对象上时,都会触发该事件。例如:当文本框获得焦点后,自动选择文本框内全部内容。Private Sub Form_Load()ShowText1.SetFocusEnd SubPrivate Sub Text1_GotFocus()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End SubLostFocus事件:对象失去焦点事件。当按下Tab键或用鼠标单击窗体上其他对象而使该文本框失去焦点时触发该事件。例如:当文本框失去焦点后,把文本框中内容赋给标签。Pr

29、ivate Sub Text1_LostFocus()Label1.Caption = Text1.TextEnd Sub例如:一个文本框(Text1),初始状态下内容为空;当获得焦点时,文本框内容显示文本框获得焦点字样;当单击命令按钮(Command1),文本框失去焦点,则显示文本框失去焦点字样,文本框回到初始状态;具体程序如下:Private Sub Command1_Click()Text1.Text = Text1_LostFocusEnd SubPrivate Sub Text1_GotFocus()Text1.Text = 文本框获得焦点End SubPrivate Sub Tex

30、t1_LostFocus()Text1.Text = 文本框失去焦点End Sub KeyPress事件:当焦点在当前文本框中,当用户按下并释放键盘上某键时引发的KeyPress事件,在该事件发生的同时,返回用户输入字符的ASCII码值(十进制)。例如:将输入文本框内的字符及相对应的ASCII码打印到窗体上。程序如下:Private Sub Text1_KeyPress(KeyAscii As Integer)Dim zf As Stringzf = Chr(KeyAscii) KeyAscii为按键的 Ascii值(ALT 键除外)Print zf, KeyAscii End Sub其中8对

31、应BackSpace、45对应 - 、46对应 . 、48-57对应 0-9。例如:限制输入到文本框中的数据,如数据只能为“数字”,并给出用户一个提示,说明是正确的;反之,若输入的数据不是“数字”,则给出错误信息。利用文本框的KeyPress事件。每输入一个字符(即发生KeyPress事件)利用KeyAscii进行检测,如果不是数值型,立即给出提示,并要求用户重新输入。程序如下:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii 57 Or KeyAscii 48 And KeyAscii 8 Then MsgBox 你输入的一

32、个数据不是数字,请重新输入 KeyAscii = 0 KeyAscii为一空值 Text1.Text = Chr(KeyAscii) 转换成字符串是一空串SendKeys Home+End SendKeys BACKSPACE Text1.SetFocusElse Text1.Text = Text1.Text + Chr(KeyAscii)End IfEnd Sub上面程序在解决文本框中接收数据时有这样一个问题,即当文本框接收不是数字时,前面已经接收的数字也一同被清空,下面提供的程序可以解决这个问题。Private Sub Text1_KeyPress(KeyAscii As Integer

33、)If KeyAscii 57 Or KeyAscii 48 And KeyAscii 8 Then Text1.Text = Text1.Text + Chr(KeyAscii) MsgBox 你输入的数据 & Chr(KeyAscii) & 不是数字,请重新输入 SendKeys BACKSPACE SendKeys End Text1.Text = Left$(Text1.Text, Len(Text1.Text) - 1) End IfEnd Sub例如:限制输入到文本框中的数据,如数据只能为“数字”、英文字母、退格键和,下划线;若输入的数据不是规定数据后立即退出过程,

34、并给出提示信息。程序如下:Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 65 And KeyAscii = Asc(a) And KeyAscii = Asc(0) And KeyAscii = Asc(9) Then Exit Sub End If If KeyAscii = Asc(_) Then Exit Sub End If If KeyAscii = 8 Then 退格键 Exit Sub End If Beep MsgBox 你输入的数据不是规定数据,请重新输入 KeyAscii = 0 作用阻止“不允许

35、接收的字符”在文本框内回显End Sub3. 常用方法SetFocus方法:用于将焦点 (光标)移到指定的文本框中(该方法主要用于程序中)。语句格式为:对象.SetFocus例如:执行下面程序代码,将焦点 (光标)移到Text1上。Text1.SetFocus 例如:通过下面的例子来说明标签与文本框的用法。要求设计一窗体如图3-4所示,用于显示输入的姓名、性别、年龄。点击输入按钮进行文本框内容的清空,点击显示按钮则在最下面的标签4中显示输入的内容,点击退出按钮退出程序。对象属性设置见下表:表3-6 实例界面控件对 象名称(Name)标题(Caption)文本(Text)窗体Form1VB测试系

36、统文本框1Text1无空白文本框2Text2无空白文本框3Text2无空白标签1Label1姓名无标签2Label2性别无标签3Label3年龄无标签4Label4无空白命令按钮1Command1输入无命令按钮2Command2显示无命令按钮3Command3结束无图3-4 界面设计Private Sub Form_Load() Label4.Caption = End SubPrivate Sub Command1_Click() 输入 Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus Label4.Caption = End Sub

37、Private Sub Command2_Click() 显示输入内容 Label4.Caption =Label1.Caption & Text1.Text & Label2.Caption &Text2.Text & _Label3.Caption & Text3.TextEnd SubPrivate Sub Command3_Click() 结束 EndEnd Sub3.4 3.4 列表框列表框列表框为用户提供了选项的列表,用户可以根据需要,从列表框显示的项目列表中选择一个或多个项目。如果项目太多,超出列表框设计时的长度,则VB会自动给列表框加上垂

38、直滚动条。为了能够正确操作,列表框的高度应不少于三行。它的默认名称(Name)ListX(X为编号,从1,2,依次顺延)。3.4.1 3.4.1 常用属性常用属性 列表框的部分属性,如名称、BackColor、Enabled、ForeColor 、Font、 Height、Visible 、Width、Top与 Left等属性与窗体及其他控件的属性相同。另外,还可以使用如下属性:List(Index) 属性用来列出表项的内容。list是一个数组,Index是数组下标(下标值从0开始),通过Index指明数组中的第几个元素(用于访问列表的全部项目),语句格式为:SM=列表框.List(Index

39、)例如:列出列表框List1第6项内容。SM= List1.List(5) (或写成SM = List1.List(List1.ListIndex))Print SM 利用该属性还可以改变列表框内表项的内容,语句格式为: 列表框.List(Index) = SM ListIndex属性返回当前已选定项目位置,项目位置由下标(index)确定(未选定项目时,返回ListIndex的下标(index)值为-1)。该属性只能在运行中通过程序代码进行设置。当在程序中设置ListIndex后,被选中的项目反相显示。例如:选择列表框中某个项目,在事件过程中添加程序代码如下:X= List1.ListInd

40、ex 若X=2,表明选择列表框中第三个项目并反相显示,其下标(Index)值为2。ListCount属性返回列表框中项目的总数目。该属性只能在运行中通过程序代码进行设置,语句格式为:N = ListX.ListCount (N 为列表框中项目的总数目)X为0,1,2。N1=List1.ListCount-1 (为列表框中最大的列表项下标)Columns属性Columns属性返回或设置一个值,且该属性只能通过属性窗口进行设置,用以决定 ListBox 控件是水平还是垂直滚动、以及如何显示列中的项目。如果水平滚动,则 Columns 属性决定显示多少列。缺省值为0时,代表所有项目为单列显示,项目超

41、过列表框高度,列表框右边自动增加垂直滚动条;当n=1时,代表所有项目为单列显示,项目超过列表框高度,列表框下边自动增加水平滚动条;当1n=总项目数时,代表所有项目为n列显示,项目超过列表框高度,列表框下边自动增加水平滚动条。例:把屏幕字体放入两个具有不同Columns属性的 ListBox 控件中。List1的 Columns 属性为缺省值0,List2 的Columns 属性设置为2。观察运行结果。Private Sub Form_Load()Dim I As Integer 声明变量.List1.Move 50, 50, 2400, 1750 排列列表框List2.Move 2500, 5

42、0, 3000, 1750For I = 0 To Screen.FontCount - 1 把用屏幕字体添加到两个列表框 List1.AddItem Screen.Fonts(I) List2.AddItem Screen.Fonts(I)Next IEnd Sub Multiselect属性该属性指示是否能够在ListBox (FileListBox) 控件中进行复选以及如何进行复选。该属性在运行时不可用。属性设置共有三个值0、1和2,缺省值为0。属性值的含义:当n=0时,不允许复选;当n=1时,可用鼠标或空格键复选;当n=2时,可用Shift、方向键(连续选)复选、Ctrl和鼠标键来进行

43、(不连续)复选。注意:当复选结束后,Listindex和Text的属性只表示最后一次选择值。Selected属性该属性在设计时不可用,该属性返回为列表项的选中状态,当列表框中的表项被选中,该属性值为True(真);若为False(假),表示该项未被选择。用语句检查指定的表项是否被选择,并返回一个逻辑值。语句格式为:列表框.Selected(索引值) “索引值”从0开始,使用时两边的()括号不能少。例如:判断是否选中。Pd = List1.Selected(List1.ListIndex) Pd为返回的逻辑值另外,还可以用语句选择指定表项或取消已选择的表项,语句格式为:列表框.Selected(

44、索引值)=True/FalseSelCount属性返回在ListBox 控件中被选中项的数量。如果没有项被选中,那么SelCount属性将返回0值。反之它返回当前被选中的列表项的数量。通常它与Selected一起使用,处理列表框中所选择的项目数,但Style属性要设置为1,即其外观为复选框形式。语句格式为: 列表框.SelCount例如:统计List1中被选中的列表项的数量,语句格式为:x = List1.SelCount x为存放选中列表项数量的变量Sorted属性该属性用来确定列表框中的项目是否按字母或数字升序排列。当该属性值为True时,列表框中的项目是按字母或数字升序排列的;当该属性值

45、为False(缺省值)时,列表框中的项目按加入列表框的先后次序排列。 Style 属性该属性只能在设计使用,用于指定控件外观,共有两个值0、1,缺省值为0。属性值的含义:当属性值为0,其外观为标准形式;当属性值为1,其外观为复选框形式,如图3-5所示。图3-5 Style示例Text属性该属性只能在运行时使用,返回被选中的列表项的文本(列表框内最后一次选中的项目内容),并且被选中的项目内容不能被编辑。语句格式为: ListX.textX为1,2,。注:但可以利用List1.List(List1.ListIndex)语句改变选中的表项内容。图3-6 编辑List项目内容的错误信息例如:用上述两种

46、语句将列表框内1中选中项的内容输出到窗体上。Private Sub List1_Click()Dim x, x1List1.Text = kkkkkkk 项目内容不能被编辑,如图3-6x = List1.Text 选中的列表项的文本赋给变量XList1.List(List1.ListIndex) = llllllllx1 = List1.List(List1.ListIndex)Print x, x1End Sub例如:将列表框1中选中的列表项的文本赋给文本框。Text1.Text= List1.Text 3.4.2常用事件列表框经常用到Click、 DblClick事件。在设计用户界面时,如

47、果把列表框作为用户界面的一部分,对里面的表项进行选择,则常把读出的表项与其它方法结合实现一个目标。如用命令按钮与配合列表框使用,当单击命令按钮打开一个文件。或是双击后配合有关语句直接打开、执行某个文件。图3-7 List控件单击事件示例例如:在窗体添加一个命令按钮、一个列表框和一个文本框,如图3-7所示。要求从列表框内选择一个表项(文件名),在单击命令按钮后,将该文件内容放入文本框内。Dim n, wj As StringPrivate Sub Command1_Click() If List1.ListIndex -1 Then Open C: & wj & For Inpu

48、t As #1 Line Input #1, n Close #1 Text1.Text = n Else MsgBox 请选择项目后,在按显示按钮! End IfEnd Sub Private Sub Form_Load()List1.AddItem usa1.txtList1.AddItem usa2.txtList1.AddItem usa3.txtList1.AddItem usa4.txtForm1.Caption = 显示文件End Sub Private Sub List1_Click()wj = List1.TextEnd Sub3.4.3常用方法列表框可以使用AddItem、

49、RemoveItem和Clear等方法,在运行期间修改列表框的内容。1. 增加列表中项目AddItem 方法该方法用于在列表框中添加单个项目,语句格式为: 列表框.AddItem 项目 ,索引值“项目”是要新增到列表的内容,它必须是字符串类型。非字符串类型可通过Str函数或Format函数来转换;如果省略“索引值”参数, “项目”被放在列表框项目中最后项目的下面;如果给出“索引值”,则在列表框中指定位置添加“项目”。例如:List1.AddItem usa 默认添加在最后 List1.AddItem usa,0 添加到到第一个位置(起始位置为0) 注意:列表框中的项目“索引值”是从0开始计数,

50、并且“索引值”不能大于列表框中“项目数-1”。此外,列表框中的项目添加,也可以通过列表框中List属性设置。如图3-8所示:图3-8 List属性设置2. 删除列表中项目RemoveItem 方法该方法用于在列表框中删除指定的单个项目,语句格式为:列表框.RemoveItem 索引值 或列表框.RemoveItem ListX.Listindex注意:ListX(X为1,2,)。列表框每一项目都有一个“索引值”,第一个项目的“索引值”是0,第二个“索引值”是1,依此类推。删除项目可通过删除其“索引值”来实现。例如:删除列表中第3项目:List1. RemoveItem 2 原来的第4项就变成了

51、第3项。3. 清除列表框中的全部项目Clear 该方法用于清除在列表框中的全部项目,语句格式为:列表框.Clear清除列表框中的所有项目执行Clear 后,ListCount属性重新被置为0。3.4.4 3.4.4 应用举例应用举例例如:通过此例观察列表框的属性、事件和方法。对象设置见下表。界面设计如图3-9所示:图3-9 List应用举例界面对象对象属性属性设置值设置值对象对象属性属性设置值设置值窗体窗体NameForm1列表框NameList1Caption列表框ZList空值空值标签标签1NameLabel1命令按钮1NameCommand1Caption项目数Caption增加增加标签

52、标签2NameLabel2 命令按钮2NameCommand2Caption空值Caption删除删除标签标签3NameLabel3命令按钮3NameCommand3Caption索引值Caption清除清除标签标签4NameLabel4命令按钮命令按钮4NameCommand4Caption空值空值Caption插入插入表3-7 List应用举例界面控件设置程序如下:Private Sub Command1_Click() List1.AddItem 项目1 增加项目 List1.AddItem 项目2 List1.AddItem 项目3 Label2.Caption = List1.Lis

53、tCount 返回列表中共有多少个项目数End Sub Private Sub Command2_Click() 删除Dim x As Integer x = List1.ListIndex If x = 0 Then List1.RemoveItem x 删除指定项目 Label2.Caption = List1.ListCountEnd SubPrivate Sub Command3_Click() 清除 List1.Clear Label2.Caption = List1.ListCountEnd SubPrivate Sub Command4_Click() 插入Dim x1 As I

54、nteger x1 = List1.ListIndex 选择项目(没有选择ListIndex值为-1) Label4.Caption = x1 If x1 = 0 Then List1.AddItem 新插入项目下标 & CStr(x1), x1 List1.ListIndex = x1 Else MsgBox 没选择项目 End If Label2.Caption = List1.ListCountEnd SubPrivate Sub Form_Load() Label2.Caption = List1.ListCountEnd Sub Private Sub List1_Click

55、()Dim x1 As Integer x1 = List1.ListIndex 选择项目(没有选择ListIndex值为-1) Label4.Caption = x1 MsgBox 你选择了列表框内表项为: & Chr$(13) + Chr$(10) & _ List1.Text & ,其 下标为: & CStr(x1)End Sub表3-8 属性的设置例如:在窗体上添加两个列表框和两个命令按钮,程序设计界面见图3-10所示。要求单击“添加”按钮,将列表框1中选中的表项填加到列表框2中,或单击“删除”按钮,删除列表框2中表项并填加到列表框1中。创建界面,对象属

56、性设置见下表:对象对象对象名称对象名称属性属性设置值设置值窗体窗体Form1CaptionForm1列表框列表框1List1List无无列表框列表框2List2List无无命令按钮命令按钮1Command1Caption添加添加命令按钮命令按钮2Command2Caption删除删除Style1程序如下:Private Sub Form_Load() List1.FontSize = 10 List2.FontSize = 10 List1.AddItem 日本 List1.AddItem 法国 List1.AddItem 美国 List1.AddItem 英国 List2.AddItem 中

57、国 List2.AddItem 德国 List2.AddItem 马来西亚End SubPrivate Sub Command1_Click()加条件判断语句未选中表项,还单击添加按钮。 If List1.ListIndex -1 Then List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End IfEnd Sub Private Sub Command2_Click() List1.AddItem List2.Text List2.RemoveItem List2.ListIndexEnd Sub图3-10 示例界面3.5

58、选择控件组合框组合框(ComboBox)是组合文本框(TextBox)与列表框(ListBox)的特性而成的控件。它兼有文本框与列表框的功能。组合框的默认名称(Name)和Text属性缺省值为ComboX(X为编号,从1,2,依次顺延)。3.5.1常用属性前面介绍与列表框的属性基本都能用于组合框。另外,还可以使用如下属性:1. Style 属性Style属性只具有只读属性,是组合框的一个重要属性,属性的设置值有0(缺省值)、1和2。其属性决定组合框的样式和各自特点。不同的Style 属性产生不同的组合框,即下拉式组合框、简单组合框和下拉式列表框。如图3-11所示。图3-11 组合框不同样式示例

59、Style 属性值能接收的事件0-下拉式组合框(有下拉选项、允许用户输入) 图3.11左图所示下拉式组合框,包括一个文本框和一个下拉式列表。可以从列表选择或在文本框中输入。接收Click、DropDown;不接收Dblclick;在文本框内输入文本时,可接收Change、KeyPress事件。程序运行后,组合框在屏幕上的显示。1-简单组合框(无下拉选项、允许用户输入)图3.11居中图所示简单组合框,包括一个文本框和一个不能下拉的列表。可以从列表中选择或在文本框中输入。接收Click、Dblclick;在文本框内输入文本时,可接收Change、KeyPress事件。程序运行后,组合框在屏幕上的显

60、示。2-下拉式列表框(有下拉选项、不允许用户输入)图3.11右图所示下拉式列表框,仅允许从下拉式列表中选择(适合选择固定项),不能在文本框内输入文本。只接收Click、DropDown;程序运行后,组合框在屏幕上的显示。每个组合框都有它们各自的特点,见下表:表3-9 组合框样式2. Text 属性该属性值是用户所选择的项目的文本或直接从编辑区输入的文本。该属性可以通过属性窗口设置,也可以在程序运行时通过代码进行设置,语句格式为:ComboX.Text = “字符串”也可以利用该属性给变量赋值,例如:给变量BL赋值,即BL= ComboX.Text。注意:当组合框为“2- 下拉式列表框”时,Text 属性为默认值,不能编辑。 Private Sub Combo1_Change() 获取编辑区内编辑的文本(改变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论