Условные операторы Visual Basic в MessageBox - PullRequest
0 голосов
/ 22 марта 2012

Я делаю эту маленькую программу, потому что мне было скучно, и я столкнулся с этой проблемой. Кевин Бэкон никогда не появляется, это означает, что ElseIf dialogResult.no не становится истинным, когда я нажимаю нет.

Вот мой код:

Public Class Form1

Private Sub btnMessage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnMessage.Click
    MessageBox.Show("I like Kevin Bacon.", "Bacon", MessageBoxButtons.OK, MessageBoxIcon.Question)

    If DialogResult.OK Then
        MessageBox.Show("You like Kevin Bacon.", "Bacon", MessageBoxButtons.OK)
        If DialogResult.OK Then
            MessageBox.Show("We all like Kevin Bacon.", "Bacon", MessageBoxButtons.OK)
            If DialogResult.OK Then
                MessageBox.Show("They all like Kevin Bacon.", "Bacon", MessageBoxButtons.OK)
                If DialogResult.OK Then
                    MessageBox.Show("Let's wait to see if Kevin Bacon will come to play.", "Bacon", MessageBoxButtons.YesNo)
                    If DialogResult.Yes Then
                        System.Threading.Thread.Sleep(9000)
                        MessageBox.Show("Kevin bacon didn't show up... :(", "No Bacon", MessageBoxButtons.OK)
                    ElseIf DialogResult.No Then
                        MessageBox.Show("Well too bad! Here's kevin bacon!", "Wild Bacon has appeared!", MessageBoxButtons.OK)
                        Form2.Show()
                    End If
                End If
            End If
        End If
    End If

End Sub

Private Sub btnStuff_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnStuff.Click

End Sub

Конечный класс

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Вам необходимо объявить переменную типа DialogResult и присвоить ей результат вашего MessageBox. То, что вы делаете сейчас, смотрит на DialogResult вашего Form, а не на `MessageBox '

    Dim Result As DialogResult

    'Displays the MessageBox

    Result = MessageBox.Show("You like Kevin Bacon.", "Bacon", MessageBoxButtons.OK)

    ' Gets the result of the MessageBox display.

    If Result = System.Windows.Forms.DialogResult.Ok Then

    End If
1 голос
/ 22 марта 2012

Я думаю, что вы используете MessageBox.Show в качестве заявления, когда вы должны использовать его как функцию.Таким образом, вместо:

MessageBox.Show("You like Kevin Bacon.", "Bacon", MessageBoxButtons.OK)
If DialogResult.OK Then

используйте:

If MessageBox.Show("You like Kevin Bacon.", "Bacon", MessageBoxButtons.OK) = DialogResult.OK Then

Эта строка выборки была взята из приложения WinForms, но принцип будет таким же для WPF и ASP.NET.*

...