如何让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
答案 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) )