如何让MessageBoxButtons.RetryCancel重启或退出程序?

时间:2014-04-08 20:53:30

标签: vb.net

如何让MessageBoxButtons.RetryCancel重启程序(重试)或退出程序(取消)?这是我的代码:

Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
    ' displays a student's grade

    Double.TryParse(txtEarned.Text, dblEarned)

    For Each minimum As Double In dblMinimumPoints
        If dblEarned >= minimum Then
            lblGrade.Text = strGrade(gradeIndex)
            gradeIndex += 1
        End If
    Next

    txtEarned.ReadOnly = False
    btnDisplay.Enabled = False

    MessageBox.Show("Do you want to try again?", "Grade Calculator",
                    MessageBoxButtons.RetryCancel, MessageBoxIcon.Question)
End Sub

3 个答案:

答案 0 :(得分:3)

我认为这是一个WinForms应用程序 因此,如果是这种情况,Application class包含所需的方法

Dim result As DialogResult = MessageBox.Show("Do you want to try again?", _
                             "Grade Calculator", _
                             MessageBoxButtons.RetryCancel, MessageBoxIcon.Question)
if result = DialogResult.Retry Then
    Application.Restart()
else
    Application.Exit()
End If

只是一点警告,两种方法都有点危险,许多人建议不要使用它们。通过对这些方法的一些研究,你可以找到很多关于调用这两种方法的副作用的警告。

Why is Application.Restart() not reliable?
Application.Exit() vs Application.ExitThread() vs Environment.Exit()

依旧......

答案 1 :(得分:1)

MessageBox返回一个DialogResult对象。你只需要在分支中加入if语句。最终声明退出了该计划。无需重新启动,只需清除数据输入字段即可。

 Dim adlg As DialogResult = MessageBox.Show("blah", "blao", MessageBoxButtons.RetryCancel)
        If adlg = Windows.Forms.DialogResult.Retry Then
            resetProgram()
        Else
            'cancel
            End

        End If

答案 2 :(得分:1)

Do

'your code here

Dialogresult res = MessageBox.Show("Do you want to try again?", "Grade Calculator",
                    MessageBoxButtons.RetryCancel, MessageBoxIcon.Question)

Loop While ( (res == DialogResult.Retry) Or (res == DialogResult.Cancel) )