我的Windows窗体应用程序有一个注销按钮,当单击该按钮时,会提示MsgBox弹出询问用户是否确定要注销。我是Visual Basic的新手,所以我不确定我应该在Elseif语句中添加什么,以便当用户点击" No"在MsgBox上,MsgBox将消失,Form将再次显示。这是我的代码:
Private Sub cmd_logout_Click(sender As Object, e As EventArgs) Handles cmd_logout.Click
MsgBox("Are you sure you want to log-out?", MsgBoxStyle.YesNo)
If MsgBoxResult.Yes Then
Me.Close()
ElseIf MsgBoxResult.No Then
(I'm not sure what I should put here I'm having a hard time figuring it out)
End If
End Sub
提前致谢。
答案 0 :(得分:3)
MsgBox
是一个函数,它返回MsgBoxResult
枚举值。
您将其用作过程,丢弃返回值,然后使用常量表达式测试条件。
不妨这样做:
If 6 Then
ElseIf 7 Then
End If
或MsgBoxResult.Yes
和MsgBoxResult.No
枚举值代表的任何内容。显然这没有多大意义。
解决方案是将函数的返回值捕获到变量中:
Dim result As MsgBoxResult = MsgBox("blablabla", MsgBoxStyle.YesNo)
然后针对常量测试该结果:
If result = MsgBoxResult.Yes Then
尽管如此,MsgBox
是传统的做事方式,包括在Microsoft.VisualBasic
中,以便于从VB6 / VBA过渡。
惯用的.NET方式是使用MessageBox.Show
代替。
此外,在模块顶部指定Option Strict On
(或更好:在项目级别),让编译器警告您未声明的变量和隐式类型转换,从而产生更加可靠和.NET惯用(更少) VB6-ish)VB代码。