DDR爱好者之家 Design By 杰米
如果用户单击确定或按下 ENTER,则 InputBox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。

这是参考手册对InputBox函数返回值的说明,简单而明了,还有必要专门写一篇文章来讨论?我知道你一定对标题不屑一顾,换成是我,我也一定会不屑一顾,如果我没有看到百度VBS吧里的一个帖子。

关于Inputbox 疑惑
————————————————————————————
如果用户单击确定或按下 ENTER,则 InputBox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。
————————————————————————————
那如何区分用户是没有输入字符按了“确定”
还是按了“取消”呢?
有些时候想传入空字符的,而有些时候想取消输入

按照参考手册的说法,无论是用户没有输入字符按了“确定”,还是按了“取消”,函数的返回值都是零长度字符串""。这样看来,似乎没有办法区分用户是没有输入字符按了“确定”,还是按了“取消”。

我也以为这是无法实现的,但是下面却有人给出了解决方案:
复制代码 代码如下:
Str=InputBox("???")
If Str="wffheu" Then MsgBox("a")
Else if Str=False Then "您按。。。取消"
End If

虽然有语法错误,但是用False的确可以区分出“确定”和“取消”。为什么呢?因为如果用户单击取消,InputBox返回的并不是一个零长度的字符串"",而是Empty

用一个简单的程序就可以测试出来:
复制代码 代码如下:
str = InputBox("Enter a string")
MsgBox TypeName(str)

当没有输入字符直接按“确定”时输出String,而按“取消”时输出Empty。于是,似乎可以这样来判断到底是“确定”还是“取消”:
复制代码 代码如下:
str = InputBox("Enter a string")
If str = Empty Then
MsgBox "Cancel"
Else
MsgBox "OK"
End If

只可惜上面的代码是错的,无论按下“确定”还是“取消”,都会输出Cancel。因为无论是"" = Empty(比较前Empty会隐式转化成"")还是Empty = Empty都会返回真,正确的方法是用IsEmpty来判断:
复制代码 代码如下:
str = InputBox("Enter a string")
If IsEmpty(str) Then
MsgBox "Cancel"
Else
MsgBox "OK"
End If

再说说为什么可以用False来判断,"" = False返回假(比较前False会隐式转换成字符串"False"),而Empty = False返回真,于是可以判断。

看来文档写的也不一定是对的,尽信文档,不如无文档。
原文: http://demon.tw/programming/vbs-inputbox.html
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。