1

どのキーワードで検索すればよいかわかりません。

これは私のアプリのモジュールにあります。

Public Sub msgYNC(ByVal result As DialogResult)
    result = MessageBox.Show("Are you sure you want to save and continue?", "RM Farms Confirmation", _
                 MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
End Sub

今度はフォームで使用したいと思います。だから私がクリックするとConfirm

Dim result As DialogResult
    msgYNC(result)
    If result = Windows.Forms.DialogResult.Yes Then
        'yes
    ElseIf result = Windows.Forms.DialogResult.No Then
        'n
    ElseIf result = Windows.Forms.DialogResult.Cancel Then
        'ca
    End If

しかし、何も返されません..応答がありません。これをコーディングする方法がわかりません。何が問題なのかを特定できますか?

4

1 に答える 1

0

解決策は非常に簡単です。Sub で byval を使用しないでください。byref

Public Sub msgYNC(ByRef result As DialogResult)
    result = MessageBox.Show("Are you sure you want to save and continue?", 
                             "RM Farms Confirmation", _
                             MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
End Sub

これを試すことができますか?

次の構造を使用することもできますが(メッセージボックスを表示したいだけの場合sub-method msgYNC

    Select Case MessageBox.Show("", "", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
        Case Windows.Forms.DialogResult.Yes
            'Do something
        Case Windows.Forms.DialogResult.No
            'Do something else
        Case Windows.Forms.DialogResult.Cancel
            'Cancel something
        Case Else
            'Do something unusefull
    End Select
于 2014-03-04T07:53:13.803 に答える