VB第七章输出Word格式.docx

上传人:b****5 文档编号:16063821 上传时间:2022-11-18 格式:DOCX 页数:10 大小:33.35KB
下载 相关 举报
VB第七章输出Word格式.docx_第1页
第1页 / 共10页
VB第七章输出Word格式.docx_第2页
第2页 / 共10页
VB第七章输出Word格式.docx_第3页
第3页 / 共10页
VB第七章输出Word格式.docx_第4页
第4页 / 共10页
VB第七章输出Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

VB第七章输出Word格式.docx

《VB第七章输出Word格式.docx》由会员分享,可在线阅读,更多相关《VB第七章输出Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

VB第七章输出Word格式.docx

Abort、Retry和Ignore

3

Yes、No和Cancel

4

Yes和No

5

Retry和Cancel

并且不同的消息可以搭配不同的图标,比如帮助文件用问号,一般提示用一个圈里一个I等等,它们也是按钮值的一部分:

16

表示危险

32

表示问号

48

表示警告

64

表示信息

但是如何既显示按钮也显示相应的图标呢,请看一会儿下面的例子。

前面说过,MsgBox是函数,那么它就会有返回值,当你按下某个按钮就会返回一个数值,以便对用户不同动作的捕捉,返回值如下:

Cancel

Abort

Retry

Ignore

6

Yes

7

No

说了这么多,可能你已经不知所措了,不过看过下面的例子后,相信一切都会迎刃而解。

首先建立一个新项目文件,并添加以下对象(见图7-1)――一个Button(Command1),两个ComboBox(Combo1和Combo2),不要对其属性做更多的修改,只需把Command1的Caption改为“ClickMe”。

这个程序的目的是自由组合上面的按钮值,以显示各种消息框,并且返回按下的按钮,Combo1和Combo2分别用来选择按钮值,首先在Form_Load中初始化程序:

PrivateSubForm_Load()

Combo1.AddItem"

OK"

OKandCancel"

Abort,RetryandIgnore"

Yes,No,Cancel"

Yes,No"

Retry,Cancel"

Combo1.ListIndex=0

Combo2.AddItem"

危险"

询问"

警告"

信息"

Combo2.ListIndex=0

EndSub

ComboBox的用法已经在上一章中讨论过,在此不再赘述,ListIndex属性用来把第一个元素放在选择位置。

但是如何显示需要的按钮和图标呢?

很简单,只需把它们相加,比如说要显示OK、Cancel按钮和警告的图标,只需把1和48相加,得到49即可,于是我们在Command1中填写这样一行:

PrivateSubCommand1_Click()

message=MsgBox("

显示"

&

Combo1.List(Combo1.ListIndex)&

"

和"

Combo2.List(Combo2.ListIndex),Combo1.ListIndex+(Combo2.ListIndex+1)*16,"

消息演示"

因为图标值是从16开始的所以要把Combo2的ListIndex加1再乘以16。

小知识:

按钮值并非简单的相加

按钮值并非简单的相加,我们知道,在计算机里最终的语言是机器语言,而机器语言是以0和1的二进制表示的,在这里用到的实际上不是相加,而是逻辑操作符“OR”,你知道OR和AND是怎样工作的吗?

正如你所知,TrueAndFalse得到False,而TrueOrFalse得到True,这是怎么形成的呢?

我们有时也用0代表False,用1或-1代表True(其实,只要非零都可以代表True),而0和1在二进制中还是本身,于是True、False的运算就变成的0和1的运算,我们可以把And叫做补0运算,把Or叫做补1运算,当用And处理两个二进制数的时候,它们逐位比较,如果相同的位上都是0或都是1则没有变化,而如果一位上是0,另一位上是1,最后结果上相应的位上就变成0。

比如1010(十进制中10)And1101(十进制中13),最后就得1000(十进制中8),相同的Or亦是如此,只不过在不同的地方补1。

在位数不同时,前面补0,你可以在VB中试试看。

但为什么要讲这些呢,原因是我不想让大家真的以为这个例子中就是相加,只不过碰巧它们的0和1处在不同的位置上,并且这个小知识在今后的位图操作和API操作中很有用处。

下面在来判断用户按下的按钮。

SelectCasemessage

Case1

你按下了OK钮"

Case2

你按下了Cancel按钮"

Case3

你按下了Abort按钮"

Case4

你按下了Retry按钮"

Case5

你按下了Ignore按钮"

Case6

你按下了Yes按钮"

Case7

你按下了No按钮"

EndSelect

运行程序,结果如图7-2,7-3。

第七章未完待续

很久没有继续VB教程了,也有很多初学VB的朋友来信留言要求继续,说起来惭愧,不是有时候犯懒,就是杂物缠身,今天好不容易做在电脑前想敲几个字,哪知打开VB5出现非法操作,卸载后重新安装非法提示依然出现,真是岂有此理!

Windows系统用了很久了,看来冲突实在是太多,但这么久没有更新,实在说不过去,这次就算是一次纸上谈兵,带来不便之处还请大家包涵。

上次为大家讲解了MsgBox的用法,这次我来讲讲其他的输出方法。

在程序中我们如果想输出执行的结果最经常要用到什么对象,你可能会告诉我是文本框或标签控件,但事实往往不是这样,因为它们的显示方法单调,不能把各种字体的文字、图形结合在一起,因此最符合要求的控件应该是图片框(PictureBox),或直接就在Form本身上显示,其中要用到一个很重要的方法:

“Print”,它的用法是:

对象.PrintSpc(n)/Tab(n);

字符串表达式;

……

其中Spc(),表示打印字符之间的空格,n表示空格数目,Tab()表示绝对列数,n表示列数,也就是说你可以指定在那一列上打印,它们用“;

”和字符串表达式分开,但也可以是这样:

对象.Print字符串表达式1,字符串表达式2,……

用“,”隔开字符串,这样系统就会按默认的(14列)为一个输出位。

每使用一次Print方法,程序就会在指定的对象上打印一行,在用Print则在下一行打印,当对象是窗体时,对象可以省略,例如打印一个表格:

(注意:

要把使用Print的对象的Autoredraw属性设为True,我们知道,当有多个窗口层叠时,哪个窗口得到焦点就会显示到最上面,当它显示时就是一种重绘的过程,Windows系统需要重新计算原来它的图形界面,这是一个非常复杂的过程,不过在VB中只需用一个Autoredraw属性就可以做到了,不信的话可以保持该属性为False,看看会怎样?

Print'

空一行

FontUnderline=True

FontSize=18

FontBold=True

Print,"

中国VB联盟成员列表"

Print

FontUnderline=False

FontSize=10

PrintTab(3);

姓名"

;

Tab(15);

年龄"

Tab(25);

性别"

Tab(35);

个人简介"

FontBold=False

Mars"

21"

男"

……"

……………

更多的内容我将在下一章的用VB作图中向你说明。

当然,在平时用文本框或标签控件显示输出结果也是一种简单的方法,这些和我们以前讲到的大同小异,也就不再进行过多的介绍了,下面我来讲讲对字符串的格式化方法。

这里要用到Format()函数,它可以对字符串按照指定的形式输出,也可以用做数字、日期的格式化,方法是:

Format(表达式,[格式化表达式])

其中格式化的表达式可以为:

“0”,“#”,“.”,“,”,“:

”,“$”,以及“()+-E+E-”等等表示,下面我将举一个小例子说明Format的所有功能(奇迹!

奇迹!

这时在打开VB5居然非法操作消失了!

):

请先建立一个项目文件,在Form1上添加两个框架控件(Frame)和若干按钮、文本框、无线钮和标签控件,具体如图所示:

(图7-2-1):

其中有两排八个按钮为Command1,Index从0到7,又有七个无线钮Option1,Index从0到7,下面为了能够使用,请为它们修改Caption属性,如图7-2-2。

然后加入如下代码:

DimFormatExpAsString

DimThisTimeAsDate

PrivateSubCommand1_Click(IndexAsInteger)

FormatExp=FormatExp+Command1(Index).Caption

Text1.Text=FormatExp

PrivateSubCommand2_Click()

a$=Format("

1234567890.0987654321"

FormatExp)

Label1.Caption="

格式化后的数值:

"

+a$

Text1.Text="

FormatExp="

ThisTime=Now

Label2.Caption=ThisTime

PrivateSubOption1_Click(IndexAsInteger)

Text2.Text=Format(ThisTime,Option1(Index).Caption)

其中0和#代表数值显示的位数,不同的是如果定义格式化表达式的位数如果多于原表达式,则使用0则补0,使用#则省略0;

“.”用来指定小数点的位置;

其余字符用来分割数值,如“,”。

结果如下图:

7-2-3。

关于时间的格式化表达式的定义方法如下表:

格式符

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1