2016-12-14 4 views
0

Meine Windows Form Anwendung verfügt über eine Abmeldeschaltfläche, die beim Klicken auf eine MsgBox Pop-up fragt fragen, ob der Benutzer sicher ist, dass er protokolliert werden soll -out oder nicht. Ich bin neu in Visual Basic, deshalb bin ich mir nicht sicher, was ich in die Elseif-Anweisung schreiben soll, so dass, wenn der Benutzer auf "Nein" auf der MsgBox klickt, die MsgBox verschwunden ist und das Formular wieder angezeigt wird. Hier ist mein Code:Programm wird nicht zum Formular zurückkehren, wenn Benutzer auf "Nein" auf MsgBox klickt

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 

Vielen Dank im Voraus.

Antwort

3

MsgBox ist eine Funktion, die einen Enum-Wert MsgBoxResult zurückgibt.

Sie verwenden es als Prozedur, verwerfen den Rückgabewert und testen dann Bedingungen mit konstanten Ausdrücken.

Es könnte aber auch dies tun:

If 6 Then 

ElseIf 7 Then 

End If 

oder was auch immer die MsgBoxResult.Yes und MsgBoxResult.No ENUM-Werte stehen. Offensichtlich macht das nicht viel Sinn.

Die Lösung ist die Funktion der Rückgabewert in eine Variable zu erfassen:

Dim result As MsgBoxResult = MsgBox("blablabla", MsgBoxStyle.YesNo) 

Und dann dieses Ergebnis gegen die Konstanten zu testen:

If result = MsgBoxResult.Yes Then 

Das heißt, MsgBox ist die Legacy-Art der Dinge zu tun, in Microsoft.VisualBasic enthalten, um den Übergang von VB6/VBA zu erleichtern.

Die idiomatische .NET-Methode besteht darin, stattdessen MessageBox.Show zu verwenden. Geben Sie Option Strict On am Anfang des Moduls (oder besser: auf Projektebene) an, damit der Compiler Sie vor nicht deklarierten Variablen und impliziten Typkonvertierungen warnt, was zu solideren und .NET-idiomatischen (weniger VB6-ish) VB-Code.

Verwandte Themen