检测VB6输入框中按下的取消

检测VB6输入框中按下的取消,vb6,inputbox,Vb6,Inputbox,我正在构建一个VB应用程序,它一开始就接受数字。如果用户按下任何输入框中的取消按钮,我希望能够退出。 代码是: Private Sub Command1_Click() Dim a, b, c, d As Integer Dim response As Integer Dim a1, b1, c1, d1 As String a = InputBox("Enter Numerator 1") b = InputBox("Enter Denominator 1") c = InputBox("En

我正在构建一个VB应用程序,它一开始就接受数字。如果用户按下任何输入框中的取消按钮,我希望能够退出。 代码是:

Private Sub Command1_Click()
Dim a, b, c, d As Integer
Dim response As Integer
Dim a1, b1, c1, d1 As String
a = InputBox("Enter Numerator 1")
b = InputBox("Enter Denominator 1")
c = InputBox("Enter Numerator 2")
d = InputBox("Enter Denominator 2")

a1 = Str(a)
b1 = Str(b)
c1 = Str(c)
d1 = Str(d)

If a1 <> "" And b1 <> "" And c1 <> "" And d1 <> "" Then
'All Actions
...
Else

 response = MsgBox("Are you sure you want to quit?", vbYesNo + vbQuestion, AdditionV1.0")
 If response = vbYes Then
 End
 Else
 Addition.Show
 End If
Private子命令1_Click()
尺寸a、b、c、d为整数
作为整数的Dim响应
尺寸a1、b1、c1、d1为字符串
a=输入框(“输入分子1”)
b=输入框(“输入分母1”)
c=输入框(“输入分子2”)
d=输入框(“输入分母2”)
a1=Str(a)
b1=Str(b)
c1=Str(c)
d1=Str(d)
如果a1“”和b1“”以及c1“”和d1“”,则
"一切行动,
...
其他的
response=MsgBox(“确实要退出吗?”,vbYesNo+vbQuestion,AdditionV1.0)
如果响应=vbYes,则
终点
其他的
添加。显示
如果结束
我试过使用strprtr,但它仍然不起作用。发生的情况是,即使我按“取消”,它仍然会显示错误消息


非常感谢您的帮助。

如果我正确理解您的问题,您希望在用户按下“取消”按钮时停止处理

我建议这样做(注意,我将InputBox赋值的变量更改为a1、b1、c1、d1):

Private子命令1_Click()
尺寸a、b、c、d为整数
作为整数的Dim响应
尺寸a1、b1、c1、d1为字符串
a1=输入框(“输入分子1”)
如果(a1=”“)
出口接头
恩迪夫
b1=输入框(“输入分母1”)
如果(b1=”“)
出口接头
恩迪夫
c1=输入框(“输入分子2”)
如果(c1=”“)
出口接头
恩迪夫
d1=输入框(“输入分母2”)
若(d1=”“)
出口接头
恩迪夫
如果a1“”和b1“”以及c1“”和d1“”,则
"一切行动,
...
其他的
response=MsgBox(“确实要退出吗?”,vbYesNo+vbQuestion,AdditionV1.0)
如果响应=vbYes,则
终点
其他的
添加。显示
如果结束

strprtr
是一条路要走。由于您没有显示相关代码,因此无法判断您做错了什么(但代码中仍然存在一些错误)。原则上,以下工作:

Dim a As String
a = InputBox("Enter Numerator 1")
If StrPtr(a) = 0 Then
    ' Nothing was entered.
End If
我怀疑您将检查应用于
a1
等,而不是原始变量。这不仅不起作用(
Str
强制字符串为非空),而且毫无意义:这些变量到底是干什么的

此外,所有变量声明都是错误的。以下是:

Dim a, b, c, d As Integer

a
b
c
声明为
Variant
。只有
d
将是
整数
。因此,出于其他原因(可读性),从不在一条语句中声明多个变量。一定要分开申报。哦,使用有意义的名字<代码>a,
b
c
d
都没有帮助。

谢谢你们,我把分子和分母的数据类型改成了字符串,strprtr创造了奇迹。康拉德,我正在开始学习Python,这只是几个月前我试图尝试的一个问题,今天我偶然发现了这个问题。尽管如此,我已经考虑了你的所有建议,从现在起我会按照你说的去做。另外,你能告诉我从哪里开始学习Python还是首先要学习Python,或者C++。我是来自印度的巴拉特,我在读九年级。为什么连(a)都够了的时候还要写(a)?@Joshua,因为那还不够。您需要区分空输入和无输入(即取消按钮)。测试
Len(a)=
a=“”
相同,并且正如OP所指出的,没有进行必要的区分。我个人从未遇到过任何使用输入框的代码,在输入框中区分两者很重要。在用户输入不是100%必需的情况下,inputbox是一个非常糟糕的解决方案,在所有其他情况下,可以使用空输入来取消。我也不清楚OP想要区分什么和这个问题。但是现在我明白你为什么要用strpr了。@Joshua如果不需要这个案例,那么这个盒子就不会有“取消”按钮。在很多情况下,空白输入是有效的,并且与取消操作不同(尽管OP不是有效的,而且对于输入框来说显然是一个不好的用例)——例如每当提示用户编辑一个可能为空的现有值(“输入你最喜欢的新食物”),其中“取消”显然将恢复为旧值,而不是保存新的空值。
Dim a, b, c, d As Integer