2016-12-14 11 views
0

私のWindowsフォームアプリケーションにはログアウトボタンがあり、クリックするとMsgBoxにポップアップメッセージが表示され、 〜アウト。私はVisual Basicには新しく、Elseif文に何を入れるべきか分からないので、ユーザーがMsgBoxで「いいえ」をクリックすると、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 

ありがとうございます。

答えて

3

MsgBoxは関数で、MsgBoxResultのenum値を返します。

これをプロシージャとして使用して戻り値を破棄し、定数式で条件をテストしています。

If 6 Then 

ElseIf 7 Then 

End If 

または何MsgBoxResult.YesMsgBoxResult.No列挙値が用スタンド:

は、同様にこれを行う可能性があります。明らかにそれはあまり意味がありません。

ソリューションは、変数に関数の戻り値をキャプチャすることです:

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

そして定数に対してその結果をテストする:

If result = MsgBoxResult.Yes Then 

前記、MsgBoxがありますVB6/VBAからの移行を容易にするために、Microsoft.VisualBasicに含まれています。

イディオム的な.NETの方法は、代わりにMessageBox.Showを使用することです。

また、コンパイラに宣言されていない変数と暗黙の型変換について警告するために、モジュールの先頭に(またはより良い:プロジェクトレベルで)Option Strict Onを指定すると、VB6-ish )VBコード。

関連する問題