控件应用基础

320 阅读3分钟

一、KeyPress事件

KeyPress事件是在用户按动键盘上任何一个可打印的字符时发送的,只有能接受到键盘输入的控件才有KeyPress事件。KeyPress事件过程用的最多的是文本框和组合框,它剋截取TextBox或ComboBox控件所输入的击键,而且可以立即击键的有效性或在字符输入时对其进行一定的格式处理。

KeyPress事件还有一个参数KeyAscii,用来返回击键的ASCII码,利用这个参数可以对所有输入的字符进行格式转换。例如,用下面的语句即可实现将输入的文本全部转换为大写。

Char = Chr(KeyAscii)
KeyAscii = Asc(UCase(Char))   'UCase()为大写转换函数

KeyPress事件不能识别功能键(F1~F12)和编辑键(如Insert、Home等)的击键动作,要捕获这些按键可以采用KeyDown和KeyUp事件过程。

二、Tab键顺序

默认情况下,Tab键顺序号就是在窗体上添加控件的次序,画到窗体上的第一个控件其TabIndex值为0,第二个为1,以此类推。

对于无效的、不可见的以及不能接受焦点的控件,尽管都具有自己的TabIndex属性值,但Tab键将跳过这些控件。

可以通过控件设计时修改属性,或者可以可以在运行时通过代码来修改,如 cmdOk.TabIndex = 0,该语句即将确定按钮的Tab键顺序该为第一个。

三、控件数组

控件数组时有具有相同名称和类型并具有相同事件过程的一组控件构成。 系统为每一个元素赋予了唯一的索引号,这个索引号放置在控件属性窗口的属性Index中欧给。因此,通过查看某控件的Index值,就可以知道它是控件数组中的第几个元素。

1.控件数组的创建

(1)通过复制现有控件 先在窗体上绘制出控件数组的第一个控件并进行必要的设置,然后再复制该控件,最后粘贴。如此反复进行就可以建立控件数组。第一次粘贴时系统会弹出“是否创建控件数组”的消息框,单击“是”按钮即可。用这种方法创建控件数组中的每个控件除了Index(第一控件的值为0,第二个为1,依次类推)和TabIndex属性外,其他可视类的属性(如Height、Width、ForeColor等)都与第一个控件相同。

(2)用已经存在的多个同类控件来创建控件数组 先确定要作为第一个元素的控件,然后将其他控件的名称值改为与第一个控件相同的名称值,此时系统也会弹出确认的消息框,回答“是”后,控件数组就创建好了。用这种方法创建的控件数组中的控件除了名称、类型与第一个控件相同外,其余仍保持该控件创建时的值。

2.控件数组的应用

为了区分控件数组中的哪个元素接受了用户的动作,VB会将接受动作的元素的小标值传递给过程,这个下标值正是该元素的Index值。事件过程的代码中只要使用判定结构即可调用相应的程序代码完成预期的功能。 例如,命令按钮组的Click事件过程的代码结构可能时如下形式:

Private Sub cmdGroup_Click(Index as Integer)
    Select Case Index
        Case 0
            ...
        Case 1
            ...
    End Select
End Sub

练习

创建三个Label的数组和三个Button的数组;分别点击按钮后显示绿灯亮,黄灯亮,红灯亮。

提示:红(vbRed),黄(vbYellow),绿(vbGreen)

image.png