输入框取消

时间:2010-06-26 11:25:13

标签: 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.", vbExclamation, "ERROR"
Form_Load
ElseIf VarType(fsUserName) = 0 Then 'If cancel clicked
cmdQuit_Click

End If

还有一种方法,当单击表单上的X按钮时,它执行cmdQuit_Click,这样如果用户单击命令按钮Quit或X,则运行Quit脚本。在退出脚本中有消息框和清理。

4 个答案:

答案 0 :(得分:11)

您可以使用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_Unload事件或更好的Form_QueryUnload事件,该事件在实际卸载之前触发。允许你取消它。
它还会告诉您表单卸载的原因(如果单击红色X,UnloadMode将为0)

使用“Unload Me”会引发两个事件。

编辑:在Form_Load中调用Form_Load会最终填满堆栈,最好使用循环来查找丢失的用户名。

答案 1 :(得分:2)

亚力克斯使用StrPtr的答案,我认为它的工作方式与广告一样好,但就更好的建议(IMO)是完全避免使用InputBox。您可以使用对话式样式,文本框和几个按钮轻松创建自己的,如果您愿意,也可以使用图标。

滚动自己可以提供完全的灵活性和可预测性,一旦拥有它,您就可以在以后的任何项目中使用它。

答案 2 :(得分:0)

Excel InputBoxApplication.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

答案 3 :(得分:0)

试试这个......

Name = Application.InputBox("请输入姓名")

如果姓名="错误"然后

MsgBox"您在此处的留言"

退出子

结束如果