零基础学Visual Basic第2版
上QQ阅读APP看书,第一时间看更新

1.4 窗体与控件

大部分Windows应用软件由一个主窗体和若干个子窗体组成。使用VB创建一个标准EXE类型的工程,第一步就是要进行用户界面的设计,这也是VB可视化编程的特点。窗体和控件都是对象,是VB可视化界面设计中的基本构造元素。窗体是控件的容器,控件只有添加到窗体上才可以使用。

在VB开发的软件项目中,一个窗体通常包含很多不同的控件,有时将这些控件组合起来实现某个功能。控件有多种类型,每种类型的控件又包含多个不同的控件。但是,这些控件都具有一些共同的特点,就是包含了3个基本要素:属性、事件和方法。窗体的用法和控件有很多类似之处,其很多属性、事件和方法与控件是相同的。下面以显示“Hello, Visual Basic 6.0”的程序为例,介绍窗体和控件的使用。

1.4.1 第一个VB程序

图1.11是“Hello, Visual Basic 6.0”的最终运行效果。

❑单击“显示”按钮,在界面上显示“Hello, Visual Basic 6.0”。

❑单击“隐藏”按钮,“Hello, Visual Basic 6.0”从界面上消失。

❑单击“Hello, Visual Basic 6.0”链接,“Hello, Visual Basic 6.0”移动到窗体左上角。

❑单击“Hello, Visual Basic 6.0”链接,“Hello, Visual Basic 6.0”移动到初始位置。

❑单击“退出”按钮,或者按下键盘Esc按键,程序结束运行。

首先,根据上一节的介绍,建立一个标准EXE类型的工程,工程名为prjHelloVB.vbp。然后,在窗体中添加一个Label控件和两个CommandBox控件。“Hello, Visual Basic 6.0”的具体设计将结合控件的属性、事件和方法展开。

1.4.2 控件的属性

控件的属性就是控件的性质,如控件的名称、外形、背景颜色、标题、尺寸、位置、风格等。在VB程序设计时,程序员可以通过属性窗口查看和设置控件的属性值。表1.1是控件公用属性的名称和说明。

图1.11 “Hello, Visual Basic 6.0”的最终运行效果图

表1.1 控件公用属性的名称和说明

“Hello, Visual Basic 6.0”的窗体和控件的部分属性设置见表1.2,其余属性为默认设置。

表1.2 “Hello, Visual Basic 6.0”的窗体和控件属性设置

“Hello, Visual Basic 6.0”的窗体大小是固定的,可以通过其BoderStyle属性实现。StartUpPosition属性是程序运行时窗体的启动位置,可以通过属性窗口下面的窗体布局窗口浏览窗体的启动位置。本例将窗体的启动位置设置到显示器的中间。

Label控件的AutoSize属性使得该控件的大小随其Caption值的多少和字体的大小而变化。将AutoSize属性设置为True的好处是:只要不超过窗体大小,无论Label控件要显示的文本有多大都可以正常显示。否则,当文本较多或字体较大时,只能部分显示。在不知道文本大小的情况下,AutoSize属性非常有用。

CommandBox控件的Cancel属性值默认为False。如果将其设置为True,CommandBox控件会响应键盘Esc按键的命令,执行Click事件。本例“退出”按钮的Cancel属性设置为True。顺便指出,欲使CommandBox控件响应键盘Enter按键的命令,可以设置该控件的Default属性值为True。

说明

窗体和控件的Height和Width属性,控件的Height、Width、Left和Top属性一般都不需要设置,用户只需用鼠标拖动即可设置窗体和控件的大小和位置。本书随后所述的部分将省略大小和位置属性的设置。

1.4.3 控件的事件

控件的事件就是控件对外部操作的响应。产生事件的方式有很多,常用的有鼠标事件、键盘事件、焦点事件等。每种类型的事件又有很多不同的形式。如鼠标事件中,有MouseDown事件、MouseMove事件和MouseUp事件。在进行VB程序设计时,事件的响应操作是需要程序员自己开发代码来实现的。表1.3是控件公用事件的名称和说明。

表1.3 控件公用事件的名称和说明

【实例1.1】“Hello, Visual Basic 6.0”的窗体和控件的事件代码如下所示。

        01   '"退出"按钮的单击事件
        02   Private Sub cmdExit_Click()
        03        Unload Me
        04   End Sub
        05
        06   '"隐藏"按钮的单击事件
        07   Private Sub cmdHide_Click()
        08        lblHelloVB.Visible = False
        09   End Sub
        10
        11   '"显示"按钮的单击事件
        12   Private Sub cmdShow_Click()
        13        lblHelloVB.Visible = True
        14   End Sub
        15
        16   '窗体加载事件
        17   Private Sub Form_Load()
        18        lblHelloVB.Visible = True
        19   End Sub
        20
        21   'Label控件单击事件
        22   Private Sub lblHelloVB_Click()
        23        lblHelloVB.Move 0, 0
        24   End Sub
        25
        26   'Label控件双击事件
        27   Private Sub lblHelloVB_DblClick()
        28        lblHelloVB.Move 1680, 2280
        29   End Sub

【代码说明】代码第17~19行的Load事件是加载时产生的,但不是窗体启动时的第一个事件,窗体启动时的第一个事件是Initialize事件。本例中,单击“退出”按钮,或者按下键盘Esc键,这两种方式都可以产生第02~04行的“退出”按钮的Click事件。

说明

在代码编写窗口上方,选择对应对象。编写Click和Load等事件代码的时候,可以直接双击对应控件或窗体,就能进入VB自动生成的代码段,然后在代码段中编写即可。

1.4.4 控件的方法

控件的方法其实就是控件自身的动作,如控件的显示或隐藏。“Hello, Visual Basic 6.0”示例中Label控件单击事件和双击事件中都用到了该控件的Move方法。表1.4列出了控件公用方法的名称和说明。

图1.12 单击“Hello, Visual Basic 6.0”后的运行效果图

实例1.1中的Move方法有两个参数,分别是Label控件在窗体容器中所要移动到窗体上的指定位置。图1.12是单击“Hello,Visual Basic 6.0”后的运行效果图。

表1.4 控件公用方法的名称和说明