我思故我在

歌德说,人的一辈子其实只能做一件事,做了,就要扎扎实实地把它做好。我也只能通过一种行业来认定我自己的人生价值。我选择了写程序,我希望我能写好。
随笔 - 55, 评论 - 457, 引用 - 159

导航

每月存档

最新留言

广告

 

当用户按下InputBox的“取消(Cancel)”按钮,返回的字符串是vbNullString。如果用户输入0长度的字符串,然后按下“确定(OK)”按钮,返回的是空字符串“”。不幸的是,在VB里我没无法比较“”和vbNullString,因为他们在VB中相等(虽然实际上他们非常不同)。

但是用一个非官方函数可以解决这个问题:StrPtr,返回字符串的地址(VB.net中没有了)

(BTW:类似的函数还有VarPtr,ObjPtr)

因为vbNullString的指针被定义为0,而“”不是。

Dim strReturn As String

strReturn=InputBox("Enter a value")

If StrPtr(strReturn)=0 Then

    '用户取消操作

End If

在VB.net要想实现VarPtr就要自己来写了:

Module Module1

    Public Function VarPtr(ByVal o As Object) As Integer



        Dim GC As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(o, System.Runtime.InteropServices.GCHandleType.Pinned)



        Dim ret As Integer = GC.AddrOfPinnedObject.ToInt32



        GC.Free()



        Return ret



    End Function

End Module



打印 | 张贴于 2003-12-04 10:35:00 | Tag:暂无标签

留言反馈

#回复: 判断用户在inputBox返回是点击的按钮 编辑
(声明:魏滔序原创,转贴请注明出处。)
Private Sub Command1_Click()
Dim str As String
Dim Cancel As Boolean
str = InputBox("")
Cancel = Not CBool(StrPtr(str))
MsgBox Cancel
End Sub

2007-09-04 13:53:00 | [匿名:酷儿]
#re: 判断用户在inputBox返回是点击的按钮 编辑
謝謝各位大哥,謝謝
2006-08-22 17:18:00 | [匿名:沉醉不知歸路]
#re: 判断用户在inputBox返回是点击的按钮 编辑
我试了一下,其实可以判断inputbox的返回值 ,如果是"",则 是取消,如果是" ",则是输入了空格。
2005-06-19 15:40:00 | [匿名:fyf]
#re: 判断用户在inputBox返回是点击的按钮 编辑
Good。我就是遇到了这个问题,在Google上搜索到这里的解决方案。谢谢分享,祝好运。
ayayiya@163.com
2005-03-31 15:18:00 | [匿名:ayayiya@163.com]
#re: 判断用户在inputBox返回是点击的按钮 编辑
value值决定的
2005-03-14 17:32:00 | [匿名:金刚亮]
#re: 判断用户在inputBox返回是点击的按钮 编辑
不小心就查到了你的网站,呵呵,巧啊
GCHandle gch=new GCHandle(ret);
我这样后ret的地址就不会变了吗?
2004-12-09 15:03:00 | [匿名:pyw]
#re: 判断用户在inputBox返回是点击的按钮 编辑
请问如何实现inputbox的“取消”功能呢?
2004-10-28 17:22:00 | [匿名:bluewing]
#回复: 判断用户在inputBox返回是点击的按钮 编辑
JGTM'2003
你好!
我没说清楚,我上面指的并不是在VB.net中而是VB6中,VB.net的代码只是谈到VARPTR函数顺便一题,而且我的目的并不是实际应用,而仅仅为说明一种思路。
其实不应该在这些,有把这里作为论坛的嫌疑!
2003-12-04 11:06:00 | [匿名:shannon]
#回复: 判断用户在inputBox返回是点击的按钮 编辑
不是吧?在VB.NET里InputBox遇Cancel将返回长度为0的String吧?虽然OK遇空输入也会返回长度为0的String,你的程序只需要针对字串的值做正常逻辑判断即可。
2003-12-04 10:58:00 | [匿名:JGTM'2003]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0