Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb6 输入框取消_Vb6 - Fatal编程技术网

Vb6 输入框取消

Vb6 输入框取消,vb6,Vb6,我已经创建了一个输入框来输入用户名,但是被“取消”按钮卡住了 Private Sub Form_Load() fsUserName = UCase(InputBox("Please Enter your name.", "User Name", _ "dc")) If fsUserName = "" Then MsgBox "No name Entered." & Chr(13) & Chr(13) & _ "You must enter a name.", vbExc

我已经创建了一个输入框来输入用户名,但是被“取消”按钮卡住了

Private Sub Form_Load()
fsUserName = UCase(InputBox("Please Enter your name.", "User Name", _
"dc"))

If fsUserName = "" Then
MsgBox "No name Entered." & Chr(13) & Chr(13) & _
"You must enter a name.", vbExclamation, "ERROR"
Form_Load
ElseIf VarType(fsUserName) = 0 Then 'If cancel clicked
cmdQuit_Click

End If
还有一种方法,当单击表单上的X按钮时,它会执行cmdQuit\u Click,这样,如果用户单击命令按钮Quit或X,退出脚本将运行。在退出脚本中有消息框和清除。

您可以使用
StrPtr()
检测是否单击了取消

Dim fsUserName As String

fsUserName = InputBox("Please Enter your name.", "User Name", "dc")

If (StrPtr(fsUserName) = 0&) Then
    MsgBox "Cancelled or X clicked"
ElseIf fsUserName = "" Then
    MsgBox "No name Entered." & vbCr & "You must enter a name.", vbExclamation, "ERROR"
Else
    fsUserName = UCase$(fsUserName)
    MsgBox fsUserName
End If
如果您想在表单卸载时执行某些操作,可以使用
form\u Unload
事件,或者更好地使用
form\u QueryUnload
事件,该事件在实际卸载之前触发,允许您取消它。
它还将告诉您表单卸载的原因(
UnloadMode
如果单击红色X,则将为0)

使用“
卸载Me
”将引发这两个事件


编辑:
Form\u Load
中调用
Form\u Load
这样做最终会填满堆栈,最好使用循环查找丢失的用户名。

Alex使用strprtr的答案(我假设它与广告一样有效)是最好的,但更好的建议(IMO)是完全避免输入框。您可以使用一个对话框样式的表单、一个文本框和几个按钮,如果您愿意,还可以使用一个图标,轻松创建自己的


滚动您自己的应用程序会给您带来完全的灵活性和可预测性,一旦拥有了它,您就可以在未来的任何项目中使用它。

Excel
InputBox
应用程序。InputBox
是不同的功能

Sub GetValue2()
    Dim Monthly As Variant
    Monthly = Application.InputBox _
        (Prompt:="Podaj wysokość miesięcznej wypłaty:", _
         Type:=1)
    If Monthly = False Then Exit Sub
    MsgBox "Zarobki rocznie: " & Monthly * 12
End Sub
试试这个

Name=Application.InputBox(“请输入名称”)

如果Name=“False”,则

MsgBox“您的信息在此”

出口接头


如果VB6的InputBox()函数是等效API调用上的一个非常薄的包装器,则结束,该调用将取消为返回空指针。在极少数情况下,输入框是有用的,检测技术是好的——没有可靠性问题。但是,我同意InputBox()对于普通用户将要使用的生产程序来说是一个糟糕的选择。Jim很好地建议创建我自己的自定义对话框要比使用InputBox好得多。对话框可以有更专业的外观。谢谢Hanks Alex,这个解决方案对我来说非常有效。如果你也能指导我循环部分,我将非常高兴。再次感谢。