如何在出现对话框后停止执行程序

时间:2014-01-24 03:16:32

标签: vb.net

我的问题在于我的代码,简单的订单需要某些信息。当用户没有输入一条信息时,程序会显示一个对话框,然后在用户点击Okay后,它仍会计算信息。我是VB的新手,所以这里是代码片段:

 If (CheckBox3.Checked = False And blueBlackQuantityTextBox.Text <> "" And blueBlackQuantityTextBox.Text > 0) Then
        MessageBox.Show("Please check item you wish to purchase", "No Item Selected",
      MessageBoxButtons.OK, MessageBoxIcon.Error)
        Stop
    End If

    Const whiteBlackDicePrice = 6.25
    Const redBlackDicePrice = 5.0
    Const blueBlackDicePrice = 7.5
    Const tax = 0.05

    Dim whiteBlackSubTotal As Double = whiteBlackQuantityTextBox.Text *      whiteBlackDicePrice
    Dim redBlackSubTotal As Double = redBlackQuantityTextBox.Text * redBlackDicePrice
    Dim blueBlackSubtotal As Double = blueBlackQuantityTextBox.Text * blueBlackDicePrice
    'newBalanceResultLabel.Text = String.Format("{0:C2}", newBalance)

    Dim subtotal As Double = whiteBlackSubTotal + redBlackSubTotal + blueBlackSubtotal

    whiteBlackTotalsLabel.Text = String.Format("{0:C2}", whiteBlackSubTotal)
    redBlackTotalsLabel.Text = String.Format("{0:C2}", redBlackSubTotal)
    blueBlackTotalsLabel.Text = String.Format("{0:C2}", blueBlackSubtotal)

    subtotalResultLabel.Text = String.Format("{0:C2}", subtotal)

在每个IF语句之后放置一个STOP,导致程序崩溃,我只能让对话框说:好的。

请帮忙!

3 个答案:

答案 0 :(得分:2)

在这里你应该如何编写你的程序

Private sub MySub()

    If not ConditionsValidated() Then

        MessageBox.Show("Please check item you wish to purchase") ' MsgBox with a single button always returns Ok. Here you don't even need to tell to show Ok - this is default.
        Return
    End If

    ' your code is running here

end sub

private function ConditionsValidated() as Boolean

    ' Validate your controls here

end sub

如果有人没有选择某些内容,我也不会显示“错误”消息框。错误表示您的应用程序遇到严重错误。这就是为什么有验证器可以在无效控件旁边显示一个小红点,或者使控制红色的颜色等等,

答案 1 :(得分:0)

 If (CheckBox3.Checked = False And blueBlackQuantityTextBox.Text <> "" 
       And blueBlackQuantityTextBox.Text > 0) Then

    If MessageBox.Show("Please check item you wish to purchase", 
           "No Item Selected",
           MessageBoxButtons.OK, MessageBoxIcon.Error) = DialogResult.OK Then
          Stop
    End If
 End if

msgbox消息和动作似乎不匹配。不清楚“没有项目”将结束程序(或在设计器中打破调试)。也许你的意思是Exit Sub?此外,由于他们有一个选择,好的,它总是会结束程序

无论如何,MessageBox是一个返回您可以评估的DialogResult的函数。你没有这样配置

答案 2 :(得分:0)

一个简单的解决方案。在任何地方使用下面的代码,它将立即停止执行。

Response.End