购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第 2 章

2.1VB用户界面设计基础

1.概述

界面的设计有两步:先绘制控件,然后确定控件属性。

绘制控件:在工具箱里单击想画的控件,在窗体里按下鼠标并拖曳,然后松开鼠标即可。确定属性:先选中控件,然后按F4键或单击工具栏上的属性窗口进入属性(Properties)窗口,再在属性窗口中找到要设置的属性并进行设置。

2.常用属性的设置

(1)Name属性

对象都有名字,计算机把名字看成对象于对象之间的根本差异,因此在同一窗体里不许出现重名的情况(除非这是一个控件数组),且名字不得超过40个字。

在简单的程序里,给控件命名不是很必要,完全可以使用控件Name属性的缺省值。例如Text1。但在有几十个控件的复杂窗体里,就很难区分它们。所以,VB推荐由三个小写字母的前缀和一个第一个字母为大写的描述性单词组成的名字。例如cmdMyButton是一个命令按钮(前缀是cmd)

(2)Caption属性

Caption即标题,是可以在对象外观上直接看见的文本,可以长达255字符,包括空格和标点符号,比如一个叫cmdOk的命令钮,它的Caption属性就可以是“Ok”。注意:并不是所有的对象都有此属性,比如文本框、图片框、线条等就没有。

为按钮设置热键:在设置Caption属性时,在需要加下划线的字母前加上“&”符号,例如“&File”,输出的就是“File”,这样就可以通过按ALT键和标题上那个带下划线的字母来选取它了,不必为此编任何代码。

Name和caption的比较:

1)Name是系统用来识别对象的,编程时需要用它来指代各对象;Caption是给用户看的,提示用户该对象的作用;

2)Name可以采用系统默认的名称,但Caption应该根据实际情况改成意义明了的名词;

3)所有对象都有Name,但不一定都有Caption;

(3)Top,Left属性

这两个属性决定对象的位置。只有两种情况需要在属性窗口里设置这两个属性:第一种是用户没有鼠标,第二种是程序员需要十分精确地设定这两个值。当选中对象,单击并拖曳它的时候,便在修改这两个值了。

(4)Height,Width属性

这两个属性决定了对象的大小,当选中控件时,它周围出现八个小黑方块,把鼠标指向这些方块,鼠标指针将变成一个双向的箭头,这时按下鼠标并拖曳它,即可改变控件的大小,也就改变了Height,Width属性。

1.窗体的属性

(1)设置属性的方法

1)在设计态通过属性窗口设置

直接在属性窗口中选择或输入既可。

2)在程序代码中改变属性值

代码中的格式为:.对象名.属性=属性值

例:Form1.BackColor=RGB(255,0,0)

2.窗体的常用方法

(1)Hide方法

用以隐藏MDIForm或Form对象,但不能使其卸载。

语法:object.Hide

object所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。如果省略object,则带有焦点的窗体就认为是该object。

说明:

隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。用户将无法访问隐藏窗体上的控件,但是对于运行中的VisualBasic.应用程序,或对于通过DDE与该应用程序通讯的进程及对于Timer控件的事件,隐藏窗体的控件仍然是可用的。

窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互。

如果调用Hide方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。

(2)Move方法

用以移动MDIForm、Form或控件。

语法:object.Move.left,top,width,height

说明:只有left参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定left和top参数,则无法指定width参数。任何没有指定的尾部的参数则保持不变。

(3)Print方法

在Immediate窗口中显示文本。

语法:object.Print[outputlist]

Print方法的语法具有下列对象限定符和部分:

部分

描述

Object

必需的。对象表达式,其值为“应用于”列表中的对象。

outputlist

可选的。要打印的表达式或表达式的列表。如果省略,则打印一空白行。

outputlist参数具有以下语法和部分:

{Spc(n)|Tab(n)}expressioncharpos

说明:

可以用空白或分号来分隔多个表达式。

对系统指定的国别设置,用小数点分隔符将所有打印到Immediate视窗的数据正确格式化。关键字要用适用于主应用程序的语言输出。

对于Boolean数据,或者打印True或者打印False。根据主机应用程序的地区设置来翻译True和False关键字。

使用系统能识别的标准短日期格式书写Date数据。当日期或时间部件丢失或为零时,只书写已提供的部件。

如果outputlist数据是Empty,则无内容可写。但是,如果outputlist数据是Null,则输出Null。在输出Null关键字时,要把关键字正确翻译出来。

要把错误数据作为Errorerrorcode输出。在输出Error关键字时,要把关键字正确翻译出来。

如果在具有缺省显示空间的模块外使用此方法,则需要object。例如,如果没有指定对象就在标准模块上调用此方法,则将导致错误发生,但是,如果在窗体模块上进行调用,则会在窗体上显示“outputlist”。

注意:因为Print方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。例如,像“W”这样的宽字母占据的宽度超过一固定列宽,而像"i"这样的窄字母占据的宽度则较小。考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。另外,也可以使用固定间距的字体(像Courier字体)来确保每一字符均只占一列。

(4)PrintFrom方法

用以将Form对象的图象逐位发送给打印机。

语法:object.PrintForm

说明:PrintForm将打印Form对象的全部可见对象和位图。在绘制图形时,如果AutoRedraw属性为True,则在运行时PrintForm将打印Form对象或PictureBox控件上的图形。

PrintForm所使用的打印机是由操作系统的控制面板中的设置来决定。

(5)Refresh方法

强制全部重绘一个窗体或控件。

语法:object.Refresh

说明:在下列情况下使用Refresh方法:

在另一个窗体被加载时显示一个窗体的全部。

更新诸如FileListBox控件之类的文件系统列表框的内容。

更新Data控件的数据结构。

Refresh方法不能用于MDI窗体,但能用于MDI子窗体。不能在Menu或Timer控件上使用Refresh方法。

通常,如果没有事件发生,窗体或控件的绘制是自动处理的。但是,有些情况下希望窗体或控件立即更新。例如,如果使用文件列表框、目录列表框或者驱动器列表框显示当前的目录结构状态,当目录结构发生变化时可以使用Refresh更新列表。

可以在Data控件上使用Refresh方法来打开或重新打开数据库(如果DatabaseName,ReadOnly,Exclusive或Connect属性的设置值发生改变),并能重建控件的Recordset属性内的dynaset。

(6)Show方法

用以显示MDIForm或Form对象。

语法:object.Showstyle,ownerform

说明:

如果调用Show方法时指定的窗体没有装载,VisualBasic将自动装载该窗体。

当Show在显示无模式窗体时,随后遇到的代码则要执行。当Show在显示模式窗体(modalform)时,则随后的代码直到该窗体被隐藏或卸载时才能执行。

当Show在显示模式窗体时,除了模式窗体中的对象之外不能进行输入(键盘或鼠标单击)。对其它窗体进行输入前程序必须隐藏或卸载模式窗体(通常是处于响应用户某些操作状态)。MDIForm不能是形式的。

在模式窗体显示时,虽然应用程序中的其它窗体失效,但其它应用程序不会失效。

应用程序的启动窗体在其Load事件调用后会自动出现。

下面的例子说明如何使用ownerform参数:

PrivateSubcmdShowResults_Click()

'显示模式窗体frmResults.

frmResults.ShowvbModal,Me

EndSub

(7)Cls方法

清除运行时Form或PictureBox所生成的图形和文本。

语法:object.Cls

说明:

Cls将清除图形和打印语句在运行时所产生的文本和图形,而设计时在Form中使用Picture属性设置的背景位图和放置的控件不受Cls影响。如果激活Cls之前AutoRedraw属性设置为False,调用时该属性设置为True,则放置在Form或PictureBox中的图形和文本也不受影响。这就是说,通过对正在处理的对象的AutoRedraw属性进行操作,可以保持Form或PictureBox中的图形和文本。

调用Cls之后,object的CurrentX和CurrentY属性复位为0。

3.窗体的常用事件

(1).Load事件

这个事件发生在窗体被装入内存时,且发生在窗体出现在屏幕之前。窗体出现之前,VisualBasic会看一看Load事件里有没有代码,如果有,那么它先执行这些代码,再让窗体出现在屏幕上。

(2)Click事件,Dblclick事件

这两个事件在单击或双击窗体时发生。不过单击窗体里的控件时,窗体的Click事件并不会发生,VisualBasic会去看控件的Click事件里有没有代码。

(3)Activate(活动事件)与Deactivate(非活动事件)

显示多个窗体时,可以从一个窗体切换到另一个窗体。每次激活一个窗体时,发生Activate事件,而前一个窗体发生Deactivate事件。

(4)Resize事件

在窗体被改变大小时会触发此事件。

4.窗体的控制

(1)装入或卸出窗体

要装入或卸出窗体,用Load 或Unload语句。

装入窗体:LoadformName

卸出窗体:UnLoadformName

FormName变量是要装入或卸出的窗体名。Load语句只是把窗体装入内存,并不显示出来,要显示窗体可以使用窗体的Show方法。

(2)显示或隐藏窗体

要显示或隐藏窗体,用Show或Hide方法。若尚未装入内存则先装入再显示。

显示窗体:.formName.showmode

隐藏窗体:.formName.hide

FormName变量是窗体名,可选变元mode为0(缺省值)时窗体为非模态,为1时窗体为模态。模态窗体完全占有应用程序控制权,不允许切换到别的应用程序,除非关闭!而非模态窗体则反之。

(3)END语句

END语句的功能是终止应用程序的执行,并从内存卸在所有窗体。

语法是:END

1.窗体的属性

(1)设置属性的方法

1)在设计态通过属性窗口设置

直接在属性窗口中选择或输入既可。

2)在程序代码中改变属性值

代码中的格式为:.对象名.属性=属性值

例:Form1.BackColor=RGB(255,0,0)

2.窗体的常用方法

(1)Hide方法

用以隐藏MDIForm或Form对象,但不能使其卸载。

语法:object.Hide

object所在处代表一个对象表达式,其值为“应用于”列表中的一个对象。如果省略object,则带有焦点的窗体就认为是该object。

说明:

隐藏窗体时,它就从屏幕上被删除,并将其Visible属性设置为False。用户将无法访问隐藏窗体上的控件,但是对于运行中的VisualBasic应用程序,或对于通过DDE与该应用程序通讯的进程及对于Timer控件的事件,隐藏窗体的控件仍然是可用的。

窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应用程序交互。

如果调用Hide方法时窗体还没有加载,那么Hide方法将加载该窗体但不显示它。

(2)Move方法

用以移动MDIForm、Form或控件。

语法:object.Move.left,top,width,height

Move方法的语法包含下列部分:

说明:只有left参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定left和top参数,则无法指定width参数。任何没有指定的尾部的参数则保持不变。

(3)Print方法

在Immediate窗口中显示文本。

语法:object.Print[outputlist]

Print方法的语法具有下列对象限定符和部分:

outputlist参数具有以下语法和部分:

{Spc(n)|Tab(n)}expressioncharpos

说明:

可以用空白或分号来分隔多个表达式。

对系统指定的国别设置,用小数点分隔符将所有打印到Immediate视窗的数据正确格式化。关键字要用适用于主应用程序的语言输出。

对于Boolean数据,或者打印True或者打印False。根据主机应用程序的地区设置来翻译True和False关键字。

使用系统能识别的标准短日期格式书写Date数据。当日期或时间部件丢失或为零时,只书写已提供的部件。

如果outputlist数据是Empty,则无内容可写。但是,如果outputlist数据是Null,则输出Null。在输出Null关键字时,要把关键字正确翻译出来。

要把错误数据作为Errorerrorcode输出。在输出Error关键字时,要把关键字正确翻译出来。

如果在具有缺省显示空间的模块外使用此方法,则需要object。例如,如果没有指定对象就在标准模块上调用此方法,则将导致错误发生,但是,如果在窗体模块上进行调用,则会在窗体上显示“outputlist”。

注意:因为Print方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。例如,像“W”这样的宽字母占据的宽度超过一固定列宽,而像"i"这样的窄字母占据的宽度则较小。考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。另外,也可以使用固定间距的字体(像Courier字体)来确保每一字符均只占一列。

(4)PrintFrom方法

用以将Form对象的图象逐位发送给打印机。

语法:object.PrintForm

说明:PrintForm将打印Form对象的全部可见对象和位图。在绘制图形时,如果AutoRedraw属性为True,则在运行时PrintForm将打印Form对象或PictureBox控件上的图形。

PrintForm所使用的打印机是由操作系统的控制面板中的设置来决定。

2.3控件

1.常用控件介绍

(1)常用控件的属性、方法和事件

ComboBox组合框(将列表框和文本框结合在一起)

Style属性

外观属性:取0时,系统创建一个带下拉式列表框的组合框;为1时,系统创建一个由文本框和列表框直接组合在一起的简单组合框,可以从列表框中选择,也可以直接在文本框中输入;为2时,系统创建一个没有文本框的下拉式列表框,单击列表框上的按钮才显示文本框,用户不能在文本框中输入,只能在列表框中选择。

Text属性

其值为用户从列表框中选定的文本或直接输入的文本。

AddItem方法

添加列表项,使用格式:

[对象名.]AddItem<列表项文本>[,插入位置序号]

若不指定位置,则插入到列表末尾。

Clear方法

删除列表所有项目

RemoveItem方法

删除列表项,使用格式:

[对象名.]RemoveItem.删除项序号

CommandButton

命令按钮

Cancel属性

取消属性,它为True时,按〖ESC〗即等于单击此按钮。

Default属性

缺省属性,它为True时,按回车键即等于单击此按钮。

Timer计时器

Interval属性

两次调用Timer事件的事件间隔,用于创建动态效果。

Frame框架

CheckBox复选框

OptionButton选项按钮

Alignment属性

决定它们的对齐方式,0=左对齐,1=右对齐。

Value属性

决定它们是否被选中的属性

2.常用控件的使用辨析

(1)文本框和标签的区别:

文本框通常用于向计算机输入信息,而标签通常用于输出信息。文本框是一个十分重要的控件,因为由复选框和选项按钮向程序输入的信息毕竟只有少数的几条信息而已。标签和文本框的区别很小,标签可以看成是一个在运行时不能修改正文的文本框,因此标签主要用于输出信息。

(2).Label的AutoSize属性和WordWrap属性

为了使标签具有垂直伸展和字换行处理,必须设置它的AutoSize属性和WordWrap属性同时为True。

AutoSize属性为False,WordWrap属性为False时,若标签不够高而Caption太长时,Caption将被切割掉。

AutoSize属性为False,WordWrap属性为True时,情况也如此。

AutoSize属性为True,WordWrap属性为False时,表示可以水平伸展,但只显示一行信息。

(3)PictureBox和Image的Stretch属性和AutoSize属性

Image只有Stretch属性,而PictureBox只有AutoSize属性。

AutoSize属性设为True,则PictureBox改变自己的大小来适应其中的图形。

Stretch属性设为True,则Image中的图形将改变自己的大小来适应外面的边框。

(4)Frame框架、CheckBox复选框、OptionButton选项按钮的区别:

复选框和选项按钮用于向程序输入信息,框架用来对复选框和选项按钮进行分组。

复选框选中时会在小方框里打一个钩,选项按钮选中时会在小圆圈里点一个点。

2.4.定制菜单

1.菜单概述

Windows中的菜单一般由菜单条、菜单、菜单项、子菜单、弹出式菜单组成。

2.普通菜单的设计

(1)给菜单命名

菜单标题和菜单命令也有Caption和Name属性,设置了这两个属性就等于创建了菜单。Name是一个抽象名称,Caption是屏幕上可见的,可在Caption里加入“&”来设置热键。

(2)增加和删除菜单

在MenuEditor中部有三个命令钮分别是下一个、插入、删除。插入可用来增加新的菜单。在这三个键下面的Caption列表框里选中菜单项(这时它的底色就变成深蓝色),单击插入键,VisualBasic将上一个增亮菜单下推并增亮一空行,就可以输入新菜单名和标题了。删除键可用来删掉菜单。选中要删掉的菜单,单击Delete键就可以删掉它了。

(3)移动菜单标题

有四种情况:向上移动,向下移动,向左缩排,向右缩排,选中某一菜单标题,安上下箭头,则这个菜单将上下移动到你喜欢的位置上,这也决定了它在界面中的位置。如果按左右箭头,情况则有所不同。由于菜单是分级的,所以,如果它没有缩排,则它是一个菜单标题;如果它缩排一次,那么它将变成一个菜单命令;如果缩排两次,那么它将成为一个子菜单命令。VB里可以总共设计四层子菜单。

(4)设置分离条

分离条是指在菜单中将命令分组的线,VB将分离条也看成一个菜单项,它也需要Caption和Name属性,而且也有其它属性,分离条与菜单项的区别是分离条的Caption属性必须是连字号即减号。也就是,当设置了一个Caption属性为“-”的菜单项时,实际上就设置了一个分离条,分离条的名字可以是barFile1之类,以表明分离条的位置。

(5)菜单的各种简单属性

在菜单编辑器里有许多确认框和一些文本框及一个下拉式的列表框,这些决定了菜单的各种属性。

1)Checked复选属性

这个属性值设置为真,将在菜单命令左边产生一个打勾的确认标志。

2)Enabled有效属性

各种各样的用户会产生千奇百怪的操作,在许多Edit菜单里都会有不同形式的让菜单命令模糊的情况。Enabled属性为真,则菜单命令是清晰的,Enabled属性为假,则菜单命令是模糊的,这时用户就不能选中这个菜单项了。

3)Visible可见属性

对暂时不用的菜单,如果把Visible属性设为假,则菜单根本不会出现在屏幕上。这样做比把Enabled属性设为假显得更加干脆!

4)Index属性

可以生成菜单命令数组,用索引号区分开。例如向File菜单中添加一系列最近打开的文件名。添加菜单可用Load方法。以上属性可以在运行时设置,形成动态的菜单的情况。

例如:

mnuUndo.Enabled=False

mnuProperty.Visible=False

还可以改变Caption等属性。

mnuUndo.Caption=“Redo”

3.生成弹出式菜单(或浮动菜单)

几乎每个Windows应用程序都提供弹出式菜单,用户可以右键单击窗体或控件取得这个菜单。弹出式菜单也属于普通菜单,只是不固定在窗体上,而是可以在任何地方显示。

弹出式菜单用PopupMenu方法调用。假设已经用菜单编辑器生成了名为mnuedit的菜单,则可以在MouseUp事件加入如下代码就可以生成弹出式菜单:

IfButton=2ThenPopupMenumnuedit

2.5.设计状态条、工具栏、进程条等

1.创建状态条

选中状态条,按F4键进入属性窗口,双击(Custom)可以进入主要的设置窗口SBarCtrl属性窗口。

(1)选择面板形状

在SBarCtrl属性窗口里选择General标签,在Style列表框里选择多面板(缺省形式)或单面板简单文本形式。

(2)添加或删除状态条面板

在SBarCtrl属性窗口里选择Panels标签,单击Insert按钮添加一个面板,或单击Remove按钮删除一个面板。

(3)在单面板里显示文本

在SBarCtrl属性窗口里选择General标签,在SimpleText框里输入想显示在状态条面板里的文本。用代码显示的方式是:

StatusBar1.SimpleText="Newstringtoappear"

(4)在多面板里显示文本或图形

1).在SBarCtrl属性窗口里选择Panels标签,用Index旁的按钮选择面板序号。

2).在Text框里输入想显示在状态条面板里的文本。

3).如果想加入图形,单击Browse按钮打开一个图形选择对话框,选择想加入的图形,然后单击打开按钮。

4).最后按确定按钮。

5).用代码显示的方式是:StatusBar1.Panels(x).Text="Newstringtoappear"

6).编写代码

如果是一个单面板状态条,当用户单击状态条时,只需用下面的事件过程来响应:

PrivateSubStatusBar1_Click()

EndSub

如果是一个多面板状态条,就需要鉴别用户单击的是哪一个面板,可用下面的事件过程来识别用户所单击的面板:

PrivateSubStatusBar1_PanelClick(ByValPanelAsPanel)

SelectCasePanel.Index

Case1

'Codetofollowifuserclicksthefirstpanel

Case2

'Codetofollowifuserclicksthesecondpanel

Case3

'Codetofollowifuserclicksthethirdpanel

EndSelect

EndSub

2.创建工具栏

(1)建立工具条

1).在工具箱里单击工具条图标,拖到窗体的任何位置,VisualBasic自动将ToolBar移到顶部。

2).按F4键打开属性窗口。

3).双击(Custom),打开ToolBar属性窗口。

4).选择Buttons标签。

5).单击Insert按钮,VisualBasic就会在你的工具条上显示一个空按钮,现在为你的每一个按钮重复这一步。

6).单击确定按钮。

如果想把按钮分组,首先生成一个分隔的按钮,再在刚才提到的对话框里将这个按钮的Style属性改为3-Separator。

(2)为工具条增加图画

1).在VisualBasic工具箱里单击ImageList图标,并将它拖到窗体的任何位置(位置不重要,因为它总是不可见的)。

2).按F4打开属性窗口。

3).双击(Custom),打开ImageListCtrl属性窗口。

4).选择Image标签。

5).单击InsertPicture,在现在图形的对话框里选择想使用的位图或图标,然后单击打开按钮。为每个想添加图形的工具条按钮重复此步。

6).单击确定按钮。

7).单击工具条,按F4,双击(Custom),显示ToolBar属性对话框。

8).选择General标签,在ImageList框里选择刚才添加的ImageList控件。

9).选择Buttons标签,单击紧挨Index框的向左或向右箭头以选择一个按钮序号。出现在工具条最左边的按钮序号为1。

10).在Image框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形。

11).为每个按钮重复第10步。

12).单击确定按钮,现在VisualBasic就会在工具条上显示精美的图形了。

2.6.VisualBasic的输入机制

程序的基本操作就是数据的输入,数据处理和数据的输出。VisualBasic可中用于输入的控件主要有:文本框TextBox、复选框CheckBox、选项按钮OptionButton、列表框ListBox、组合框ComboBox、滚动条ScrollBar、通用对话框控件。还有一个函数叫InputBox函数,也可用于数据的输入。

1.通过文本框输入数据

只要取得文本框的Text属性就可以对其进行操作了。下面的代码可将Text1文本框的正文变成大写输出至Text2文本框。

PrivateSubForm_Click()

Text2.Text=UCase(Text1.Text)

EndSub

2.通过复选框和选项按钮输入数据

只要检测到CheckBox和RadioButton的Value属性值就可以知道它们是否被选上了。

3.通过列表框和组合框输入数据

(1)列表框ListBox和组合框ComboBox的不同

它们在Windows的Open,SaveAs对话框里最为常见。组合框又包括三种类型,这三种类型要在它的Style属性里设置。列表框仅仅把可以选择的项目列出来,而组合框里有的类型可以允许用户输入数据。

(2)列表项目的增减

使用AddItem,RemoveItem语句可以增减列表项目。通常将项目增减的语句放入Form_Load事件里。

ListBoxName.AddItemitem

ComboBoxName.AddItemitem

item是新项目名称,必须是字符串类型,非字符串类型可通过Str函数或Format函数来转换。转列表框,组合框的每一项目都有一个Index值,第一个项目的Index值是0,第二个是1,依此类推。删除项目可通过删除其Index值来实现。

ListBoxName.RemoveItemitem

ComboBoxName.RemoveItemitem

如:ListBoxName.RemoveItem0则删除了第一项,这时原来的第二项就变成了第一项。

可以在设计阶段设定列表项目,方法是:

在属性窗口选择List属性,将出现一个下拉列表,在列表中输入第一项,按Ctrl+Enter,输入第二项……,最后用Enter结束。

(3).取得列表框/组合框的数据

可以通过取得Text属性或通过取得ListIndex属性来判断哪一项被选择了。ListIndex属性的值也同样是第一个为0,第二个为1……如:

IfList1.Text=“VisualBasic”ThenInstructions

IfList1.ListIndex=1ThenInstructions

组合框有时允许用户自己输入数据,这时所输入数据的ListIndex值为-1。

4.通过滚动条ScrollBar取得数据

在VisualBasic的工具箱里有两种滚动条:一种是垂直的,一种是水平的,它们的差异无非是摆放的方向不一样。

(1)滚动条的主要属性及事件

1)Min,Max属性

Min属性决定滚动条最左端或最顶端所代表的值。Max属性决定滚动条最右端或最下端所代表的值。

2)LargeChange,SmallChange属性

SmallChange决定在滚动条两端的箭头钮上单击时改变的值。LargeChange决定在滑块上方或下方区域单击时改变的值。

3)Value属性

Value属性代表当前滑块所处位置的值,这个值由滑块的相对位置决定。

4)Change事件

当滑块位置发生变化时就引发了Change事件。

(2)取得滚动条的数据

滚动条并不是一个数据输入的好控件,因为无法从滚动条上直接看出输入的数据,但它的优点是可以表示一定范围里的相对位置。为了得到数据,只要取得滚动条的Value属性就可以了。

5.InputBox函数

InputBox函数提供一个简单的对话框供用户输入信息。在把其它版本的BASIC程序移植到VisualBasic时,InputBox函数通常用来代替INPUT语句。这个对话框的样子基本上是上面的样子。

它的完整语法是:x=InputBox(prompt,title,default,xpos,ypos,helpfile,context)

其中,prompt是提示的字符串,这个参数是必须的。title是对话框的标题,是可选的。default是文本框里的缺省值,也是可选的。xpos,ypos决定输入框的位置。helpfile,context用于显示与该框相关的帮助屏幕。返回值x将是用户在文本框里输入的数据,x是一个字符串类型的值。如果用户按了Cancel钮,则x将为空字符串。

2.7.VisualBasic的输出机制

作为输出的对象,VisualBasic提供了标签,文本框,窗体,图片框(PictureBox)等用于输出,而且VisualBasic里也有一堆命令、属性涉及信息的输出,较常用的有:MsgBox函数,Print方法,Cls方法,Tab函数,Format函数,FontName,FontSize,FontBold,FontItalic,FontStrikethru,FontUnderline属性,CurrentX,CurrentY属性等。

1.通过MsgBox函数输出

了解Windows应用程序的人都知道当用户操作错误时,应用程序往往打出一个消息框来提示用户的错误,象这样:

DimActionAsInteger

Action=MsgBox("单击确定键将引爆此计算机!",vbYesNo+vbCritical+vbDefaultButton2,"警告!")

IfAction=6ThenExplode

这个功能在VisualBasic里是通过MsgBox函数来实现的,这样程序员就不必自己去画一个消息框了。语法是:

Action=MsgBox(msg,type,title)

其中,msg是消息的内容,是一个字符串型的变量,type及title参数是可以省略的,type参数指定显示的按钮是什么及使用什么样的图标(这个参数往往让新程序员思考几分钟),title参数指定消息框的标题。type参数的含义是:

例如:Action=MsgBox(“Areyougirl.”,vbYesNo+vbQuestio“Question”)。使用这个函数时VisualBasic将产生一个标题为Question,具有问号和Yes,No按钮的消息框。作为一个函数,本质上还是要返回值的,MsgBox的返回值确定了用户的选择,程序可根据返回值做出相应的动作。

2.Print方法,Cls方法,Tab函数

(1)Print方法

Print方法的语法是:object.Printexpressionlist

object表示Print作用的对象,比如是Form或者是PictureBox,object是可以省略的,省略时的Print往往在窗体上输出。expressionlist是输出的内容,允许许多项数据的输出,在数据间可以加入“,”或”;”。加入分号将使下一数据项紧挨着上一数据项输出。而加入逗号,则VisualBasic将下一数据项在下一打印区输出,其实就是空了几个空格后再输出。两个打印区之间有14个字符的宽度,其实这也很难衡量,比如14个“W”所占的宽度大概是14个“i”所占宽度的三倍多。幸好中国日本之类的方块字所占的宽度基本上是一样的,所以较好处理一些。

(2)Tab函数

Tab函数只用在Print方法中,它用来移动下一个字符到打印位置,这将省去数空格的功夫。语法是:Tab(column)

Tab函数将VisualBasic自定义的14字符宽的打印区扔到一边,用自己的方式定义了新的灵活的打印区宽度。

(3)Cls方法

Cls也是一个古老的BASIC语句,原来它的作用总是把屏幕变成黑色,然后在左上角或左下角闪烁一个光标,VisualBasic里它的作用是清除绘图语句和Print语句产生的文字和图形。

语法是:object.Cls

object指清除的对象,可以是Form或PictureBox。如果object省略,通常VisualBasic都把当前的窗口作为Cls操作的对象。

3.Format函数

Format函数用于制定字符串或数字的输出格式。语法是:x=Format(expression,fmt)

expression是所输出的内容。fmt是指输出的格式,这是一个字符串型的变量,这一项若省略的话,那么Format函数将和Str函数的功能差不多。 KU7zf6tmVXGLfwpTny0THIf/MPUG42HX6zgPVvylJ6YLlqzzElweOyTUe23rToqy

点击中间区域
呼出菜单
上一章
目录
下一章
×