Vb.net 项目赢得';当用户单击时,t返回表单";否";关于MsgBox

Vb.net 项目赢得';当用户单击时,t返回表单";否";关于MsgBox,vb.net,visual-studio,Vb.net,Visual Studio,我的Windows窗体应用程序有一个注销按钮,单击该按钮时,会弹出一个MsgBox,询问用户是否确实要注销。我是VisualBasic新手,因此我不确定应该在Elseif语句中添加什么内容,以便当用户在MsgBox上单击“否”时,MsgBox将消失,表单将再次显示。这是我的密码: Private Sub cmd_logout_Click(sender As Object, e As EventArgs) Handles cmd_logout.Click MsgBox("Are you s

我的Windows窗体应用程序有一个注销按钮,单击该按钮时,会弹出一个MsgBox,询问用户是否确实要注销。我是VisualBasic新手,因此我不确定应该在Elseif语句中添加什么内容,以便当用户在MsgBox上单击“否”时,MsgBox将消失,表单将再次显示。这是我的密码:

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

提前感谢。

MsgBox
是一个函数,它返回一个
MsgBoxResult
枚举值

您将其用作一个过程,丢弃返回值,然后使用常量表达式测试条件

不妨这样做:

If 6 Then

ElseIf 7 Then

End If
或者无论
MsgBoxResult.Yes
MsgBoxResult.No
enum值代表什么。显然,这没有多大意义

解决方案是将函数的返回值捕获到变量中:

Dim result As MsgBoxResult = MsgBox("blablabla", MsgBoxStyle.YesNo)
然后根据常数测试结果:

If result = MsgBoxResult.Yes Then

也就是说,
MsgBox
是传统的做事方式,包含在
Microsoft.VisualBasic
中,以促进从VB6/VBA的转换

NET惯用的方法是使用
MessageBox.Show


另外,在模块顶部指定
选项Strict On
(或者更好:在项目级别),让编译器警告您未声明的变量和隐式类型转换,从而生成更可靠的.NET惯用(更少VB6 ish)VB代码。

MsgBox
是一个函数,它返回一个
MsgBoxResult
enum值

您将其用作一个过程,丢弃返回值,然后使用常量表达式测试条件

不妨这样做:

If 6 Then

ElseIf 7 Then

End If
或者无论
MsgBoxResult.Yes
MsgBoxResult.No
enum值代表什么。显然,这没有多大意义

解决方案是将函数的返回值捕获到变量中:

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)VB代码