07_VB6基本控件

一. 基本控件的使用

1 控件的共性

使用一个控件的属性时,应采用“控件名.属性”的形式。

有时我们还可以使用控件中定义的一些子程序或函数,而这些过程我们称为控件的方法。如很多控件所拥有的Move方法,使用此方法就可以将控件的位置移动,下面我们打开上面的例子,在Form1窗体上新建一个按钮,将键入如下的代码:

Text1.Move 0, 0

从代码中我们可以看到使用控件方法的形式与使用属性相似,不同的是方法不能设置值,而且在使用中可以有参数。

在单击此按钮后,看看前面我们用于输入加数一的文本框是不是移动到了窗体的左上角。

在键入代码的时候,我们可以看到Move方法的参数提示,第一个就是控件离窗体左边界的距离,第二个参数是控件离窗体顶部的距离,第三和第四个参数则可以重新设置控件的宽度和高度。这里可以注意到后三个参数使用中括号括了起来,这说明它们是可选的。

 

还要说明一下的是,在Visual BASIC 6中使用的默认单位是缇(Twip),而1像素约等于15缇,也就是说,如果要定义控件的长为120像素,宽为24像素,则要分别将值设置为1800和360。在真正的软件开发中,我们应该注意软件界面风格的一致性,那时就要精确设置控件的位置和尺寸了。

在控件的使用中,我们使用了属性和方法,而对于控件还有一项很重要的就是“事件”。对于控件的某个事件,可以理解为“当什么发生时要做的事情”,看一下上面的按钮响应代码的子程序:

Private Sub Command1_Click()

    Text1.Move 0, 0

End Sub

Sub关键字后面,我们看到了子程序名称为“Command1_Click”,而在下划线前面一部分不就正是这个按钮的名称Command1吗。而下划线后面的Click就指明了这是Click事件,意为“当单击Command1按钮时要做的事情”,我们在这个子程序里要做的就是移动Text1的位置。而一个控件的事件过程定义格式就是“控件名称_事件名(参数列表)”

在操作中我们还可能用到很多的事件,这些事件在代码窗口右上列表中可以看到,并且在选择后,这时开发环境会自动创建一个子程序,我们只需要键入代码就可以了,如我们还以Command1按钮为例(如果当前代码中不是Command1按钮,则在代码窗口左上列表中选择它),然后在右边列表中选择MouseUp事件,编写如下代码:

Private Sub Command7_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

    MsgBox "在此按钮上松开了鼠标!"

End Sub

运行程序,然后在Command1按钮无论您按下并松开鼠标的哪个键,都会出现一个信息窗口,这里我们设置的就是当鼠标按键松开时发生的事件。

 

除了控件的三个特征以外,还有一项比较重要,那就是控件的Name属性,即控件名称,在一个窗体中不能有同名的控件。此外,在Visual BASIC 6的一个项目中,一个窗体、一个模块、一个类等其它对象都会有一个在工程中唯一的标识名称。

 

下面我们介绍的控件和要自己创建的控件都会从属性、方法、事件这三个方面入手。

2 窗体(Form)

窗体严格来讲不属于控件,但它也拥有属性、方法、事件,而且使用控件时又少不了它,所以我们还是先来看看窗体的基本特征和使用方法。

首先,我们可以通过Caption属性来设置窗体的标题内容,如Form1.Caption=这是第一个窗体

在模块中我们使用了Show方法来显示一个窗体。

而在窗体的Load事件中,我们还可以对窗体中的一些设置进行初始化,如我们可以在Form1的Load事件中设置窗体标题为打开的时间,代码如下:

Private Sub Form_Load()

    Form1.Caption = CStr(Now)

End Sub

其中使用的Now函数将返回当前完整的日期及时间,我们使用CStr函数将时间转成字符串显示在窗口的标题上。

在关闭此窗口时,我们可以单击右上角的关闭按钮,如果我们要通过自己的按钮关闭窗口应该怎么操作呢,可以在窗体上某个按钮的执行代码中使用“Unload Form1”语句来关闭Form1窗口,而在其它窗口则将Form1该为相应的名称即可。

窗体的使用我们就先简单的介绍到这里,下面就开始介绍窗体上其它控件的使用。

3 标签(Label)

标签常用的有Caption和AutoSize两个属性,其中Caption确定了标签中显示的内容,而AutoSize属性则说明标签是否自动根据其内容调整尺寸。

4 文本框(TextBox)

(1) 属性

Text:前面我们已经多次用到,就是指定文本框内显示的内容,这和标签的Caption相似。

Locked:是否锁定。当设置为True时,用户不能在此文本框中输入内容。默认为False。

MaxLength:设置可以输入字符最大数,如设置为0则不限制输入长度,这也是默认值。

PasswordChar:此属性可以设置为一个字符,当输入字符时,此文本框只会显示这里设置的字符,从而提高输入内容的安全性,常常在密码框中使用此属性。

BackColor:设置文本框中的背景颜色。这是一个Long类型的数值。

ForeColor:设置文本框中文字的颜色。

下面介绍的几种属性几乎每一个控件都有,在此介绍后,后面的控件将不再介绍这些属性,大家可以在使用中熟悉。

Top、Left、Width、Height:分别设置文本框距容器顶部距离,距容器左边距离以及自身的宽度和高度。这四个属性确定了控件的位置和尺寸。

Visible:只在运行时有效,当设置为True时,控件是可见的,而设置为False时,用户将看不到这个控件。

Enabled:只在运行时有效,当设置为True时,用户可以对此控件进行操作;设置为False时则不能使用这个控件,如单击按钮,在文本框中输入文字等。

(2) 方法

Move:上面我们已经使用过,通过它可以改变控件的位置和尺寸。

SetFocus:将此控件设置为正在操作的控件,即将焦点转移到这个控件。对于文本框,如果Enabled和Visible属性都不是False,则使用此方法后,我们可以看到光标会在此文本框中闪烁。

(3) 事件

Change:当文本框内容变化时产生的事件。这里我们可以编写代码让Text2的内容与Text1的内容同步,双击Text1,这里我们会发现这个事件就是文本框的默认事件,然后在此事件中编写代码“Text2.Text=Text1.Text”,然后运行程序,在Text1中输入字符时,Text2的内容也会同时改变。

GotFocus:当控件得到可操作焦点时产生的事件。

LostFocus:当焦点从此控件中移出时产生的事件。

5 按钮(CommandButton)

在例子中我们也常用到按钮,它的常用属性、方法与事件如下。

(1) 属性

Caption:设置按钮上显示的文本,这个属性非常有用,这些文本可以很明显的标出按钮的用途是什么。

其次按钮中最常用的属性就Enabled了,它用于按钮是否有效,即是否可以使用。

(2) 方法

按钮中没有常用的方法。

(3) 事件

Click:这是指单出此按钮时的事件,也是最常用的一个按钮事件。

6 列表(ListBox)和下拉列表(ComboBox)

列表和下拉列表在选项较固定时非常有用,如需要输入性别时,就只有“男”和“女”,使用下拉列表是能很方便提供给用户来选择这两项。

列表和下拉列表的使用方法比较接近,下面我们先使用下拉列表来说明一下。

(1) 属性

Text:即下拉列表中当前显示的文本。

(2) 方法

AddItem:用于添加列表项,如Combo1.AddItem

Clear:清除列表中的内容,包括显示的文本。

对于这两个方法,我们可以在示例程序中新建一个窗体来进行演示,在工程中打开窗体并添加一个下拉列表和两下按钮,分别将它们的Caption属性改成“添加项目”和“清除项目”:

 

然后在“添加项目”按钮的Click事件中添加以下代码:

Private Sub Command1_Click()

'添加项目

    With Combo1

        .Clear

        .AddItem "男"

        .AddItem "女"

    End With

End Sub

在“清除项目”按钮的Click事件中添加以下代码:

Private Sub Command2_Click()

    Combo1.Clear

End Sub

设置Form3窗体为启动对象,然后运行程序。分别单击这两个按钮,然后看看下拉列表中有什么变化。

 

在添加项目的代码中,我们用到了一个新的语句With,它的格式如下:

With 对象名

   

End With

在上面的代码里我们可以发现在With和End With之间的代码,我们省略了Cobmo1控件的名称,而直接调用了方法Clear和AddItem;也就是说在With语句块中不用重复键入对象名称,从而简化了代码编写工作。

(3) 事件

Change:当输入文本内容时触发的事件。

Click:用户使用鼠标在列表中选择一项后触发的事件。

使用下拉列表还有一个小技巧,如果想让用户只能在列表中选择,可以在下拉列表的Change事件中添加以下代码:

下拉列表控件名.Text=””

如:Combo1.Text=””

这样,当用户输入内容时,下拉列表的文本总是空字符串。

 

上面是以下拉列表为例说明的,而列表中的Clear和AddItem方法与下拉列表的用法是一样的,所不同是,列表中的Text属性表明的为当前选中的项目文本,并且列表中没有Change事件。

7 图片(Image)

图片(Image)控件用于显示图片,它有两个较重要的属性Picture和Stretch。

其中Picture属性用于设置控件中要显示的图片,它的设置需要用到一个系统函数LoadPicture,这个函数的格式如下:

LoadPicture([filename], [size], [colordepth],[x,y])

其中:

部分

描述

filename

字符串表达式指定一个文件名。可以包括文件夹和驱动器。如果未指定文件名,LoadPicture 清除图象。

size

可选变体。如果 filename 是光标或图标文件,指定想要的图象大小。

colordepth

可选变体。如果 filename 是一个光标或图标文件,指定想要的颜色深度。

x

可选变体,如果使用 y ,则必须使用。如果 filename 是一个光标或图标文件,指定想要的宽度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。只有当 colordepth 设为 vbLPCustom 时,才使用X 和 Y值。For icon files 255 is the maximum possible value

y

可选变体,如果使用 x, 则必须使用。如果 filename 是一个光标或图标文件,指定想要的高度。在包含多个独立图象的文件中,如果那样大小的图象不能得到时,则使用可能的最好匹配。For icon files 255 is the maximum possible value

这个函数我们一般常用的就是第一个参数,用来指定要显示的图片文件,如:

Private Sub Command3_Click()

    Dim strImageFile As String

    strImageFile = "c:/windows/Coffee Bean.bmp"

    Image1.Picture = LoadPicture(strImageFile)

End Sub

上面代码需要在窗口中新建一个图片控件和一个按钮,然后在按钮的Click事件中书写代码,运行代码,如果文件存在则会在Image1中显示,如果图片不存在则会报错,其中strImageFile字符串变量设置了图片的完整路径与文件名,这里大家可以根据实际情况修改它。

如果要清除图片,则可以使用以下代码:

Image1.Picture=LoadPicture

这里函数LoadPicture不使用任何参数。

 

Stretch属性用于指定图片是否自动改变大小来适应控件的尺寸。设置为True时,图片会拉伸或缩小到和控件尺寸一样大,而设置为False时,控件就会改变尺寸和图片一样大,默认值为False。

8 图片容器(PictureBox)

PictureBox控件的属性Picture的使用方法和图片控件一样,都是使用LoadPicture函数来显示和清除图片。而PictureBox控件没有Stretch属性,相似的属性是AutoSize,但它们之间又有区别,AutoSize属性只用于设置控件是否自动改变尺寸,如果为True,则PictureBox的大小会和图片的实际大小一样,默认为False,这时如果图片的尺寸小于控件尺寸,则图片不能完全覆盖控件。

除了属性设置上的关系以外,PictureBox控件和Image控件在使用时功能也不太一样,Image控件的主要功能就是显示图片,而PictureBox控件显示图片只是做为背景,在控件里还可以放置其它控件,这对于界面设计时的控件分组很有用处。

说明到控件在窗体上的分组,在开始的示例中我们已经接触过,那就是使用框架(Frame)控件。

9 框架(Frame)

框架的功能就是进行控件的分组,在前面我就使用过,而对于框架控件最常用的属性就是Caption,即设置在左上角显示的文本,我们可以在此说明这个框架内控件的主要功能。

如果将框架的Caption属性设置为空串,则只显示一个矩形框。

 

对于PictureBox和Frame等可以做为容器的控件,在其内部控件的位置是相对于这些容器控件而不是相对于窗体的,在设计时请注意这一点。

10 多选项(CheckBox)

多选项一般用于可以同时选择多个选项的地方,如我们在设置字体时“删除线”和“下划线”就属于多选项。

在我们的程序中,设置CheckBox控件的Caption属性值可以改变它的文本标签。

 

如何来判断CheckBox是否被选中了呢,这里我们可以使用Value属性,这个属性有三种可能的值,它们是:

设置值

常数

说明

Unchecked

0

vbUnchecked

没有选中

Checked

1

vbChecked

选中

Unavailable

2

vbGrayed

变灰,不可操作,并且是已选中状态。

常用的有0和1,调用时可直接使用数值。

11 单选按钮(OptionButton)

单选按钮用于在一组选项中只能有一个被选中的地方。同CheckBox一样,可以设置Caption属性来指定控件的文本,而OptionButton控件的Value属性则是Boolean类型的值,当单选按钮选中时为True,否则为False。

 

除了以上介绍的常用控件以外,Visual BASIC 6还有一些其它控件,我们可以载入系统控件或第三方控件来使用,并且还可以根据实际需要自己动手创建一些控件。在后面的操作中我们用到时会详细介绍。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
表格控件总览:   在VB开发环境中,表格控件在界面开发元素中占有重要的地位。它不仅有外观整洁、表达形式规范的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。    那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的,总结下来提供了4种类型:Microsoft Data Bound grid Control、Microsoft Datagrid Control、Microsoft Flexgrid Control、Microsoft Hierarchial Flexgrid Control. 这四种表格各有其特点,下面我们一一讨论。   1. Microsoft Data Bound grid Control   此控件主要用于数据绑定(可以不绑定,但是因为不提供对单个cell的控制支持,所以实际上这样做是不经济的)。具体说来,就是数据源比较固定的情况下可以使用这种控件。   具体使用方法是设定此控件的datasource属性,就可以不用编写任何代码就可以显示该数据源所指向的记录数据。比如可以将datasource设置为一个data控件,而data控件又指向数据库"成绩"的 一个"语文"表,那么当程序运行时,它就自动显示此"语文"表的数据。 基本步骤如下: 1、向工程上添加Microsoft Data Bound Grid Control控件,即DBGrid控件。 2、在窗体上添加DBGrid控件DBGrid1和Data控件Data1。 3、设置Data1的DatabaseName属性为你要看的数据库的名字。 4、设置Data1的RecordSource属性为表的名字或合法的SQL Select语句。 5、设置DBGrid1的DataSource属性为Data1。   从上面的分析看得出来,这个控件虽然操作方便,但是它也有局限性,就是不能对显示的数据进行灵活的控制操作,比如有些数据允许用户修改,有些数据却不允许用户修改,而此控件却只能提供全部数据源的原子操作:即要么全部允许修改,要么就全部不允许。还有另外此控件也不提供对单个单元格(cell)进行操作,所以提供不了更为个性化的界面风格。   2. Microsoft Datagrid Control   此控件跟前面介绍的Data Bound grid Control控件很相似,也是主要进行绑定操作,而缺点和Data Bound grid Control完全一样。但是它跟Data Bound grid Control不一样的是其数据源的驱动引擎只能是OLEDB形式的,不能是DAO,比如就可以使用ADO数据控件,不能使用DATA控件。而Data Bound grid Control却刚好和它相反,这一点在开发中一定要注意。   3. Microsoft Flexgrid Control与Microsoft Hierarchial Flexgrid Control.   这里重点介绍这两种控件,因为在实际开发中,这两种控件应用的场合更多一些,它不仅能够反映数据,而且也能把数据的修改信息反映到数据库中去,所以弥补了上述两种控件的不足。   如果数据不需要修改,那么可以进行绑定操作,其方法跟前面介绍的完全一样,就是通过设置DataSource属性来完成数据的显示工作。但是实际开发中,需要对整个表格控件更为灵活的显示控制。   在给出例程之前,有必要对这一控件进行比较详尽的认识:这种控件允许将文本或者图象放置于每个单元格之中,控件的Row与Col属性允许用户在代码中指定当前行和列,当然也可通过操作鼠标和键盘来改变这两个属性,而text属性指明当前单元格的文本。如果单元格的文本太长而不能完全显示出来的话,可以通过将WordWrap属性设置为true来达到显示的目的。下面将比较重要的属性小结如下:   DataSource---------用来指定需要绑定的数据源,比如data控件。   Cellpicture----------用来设定当前单元格的图象,便于显示该图象。此属性不能在设计时使用。   Col,Row---------------设定当前列和当前行,注意它们均是从0开始的,如果同时设定它们,可以指定当前的单元格。设计时也不能使用。   Cols,Rows---------------设置表格控件总的列数和行数。   Hwnd---------------表格句柄,可以结合Windows API对表格控件进行更高级的控制。   Text---------------指定当前的单元格的文本内容。   TextMatrix(i,j)-------此属性比较重要,它用来指定第I行和第j列所确定的单元格的文本内容。它等价于下面的代码: MSHFlexGrid1.Rows =i MSHFlexGrid1.Cols =j MSHFlexGrid1.Text =指定的字符串   WordWrap-------为ture时可以在当前单元格换行显示,否则如果要显示的字符的长度超过列宽,那么就不能显示完全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值