在VB中使用“if then”语句中的多个消息框

时间:2016-02-25 07:54:40

标签: visual-studio

我是编程方面的新手,我在Visual Basic中遇到了一个我无法弄清楚的问题。很多论坛和YouTube视频后来我仍然没有答案。 我使用的是嵌套选择结构,其中有两个消息框。我无法弄清楚如何获取第二个对话框结果来触发elseif语句。它只是跳过它。我相信因为我为对话结果声明了一个变量,所以它正在检查它们,但在这种情况下我不知道如何仅声明第二个对话框结果。 这是迄今为止的代码。

    Dim dblTotal As Double = 12
    Dim strResponse As DialogResult

'对话框询问优惠券和$ 2优惠券。         如果MessageBox.Show(“客户有优惠券吗?”,“优惠券”,MessageBoxButtons.YesNo)= vbYes AndAlso

MessageBox.Show(“客户有2美元的优惠券吗?”,“优惠券”,MessageBoxButtons.YesNo)= vbNo然后

lblTotal.Text = Convert.ToString(dblTotal - 4)

        ' Meant to be ran if statement is false. I dont Understand
        ' why it is skipping over and not executing. 
        ' Is "dlgResult" reading the first one as well? How do I correct?

    ElseIf strResponse = vbYes Then

        lblTotal.Text = Convert.ToString(dblTotal - 2)

    Else

        lblTotal.Text = Convert.ToString(dblTotal)
    End If

End Sub

我知道如果第一条消息= vbNo会更容易编码,但我试图看看这种方式是否有效。 谢谢!!

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

Dim dialog1 As DialogResult
Dim dialog2 As DialogResult
Dim dblTotal As Double = 12

dialog1  = MessageBox.Show("Does customer have a coupon?", "Coupon", MessageBoxButtons.YesNo)
dialog2 = MessageBox.Show("Does customer have a $2 coupon?", "Coupon", MessageBoxButtons.YesNo) 

If dialog1 = DialogResult.OK Then
   dblTotal = dblTotal - 2
End If

If dialog2 = DialogResult.OK Then
   dblTotal = dblTotal - 2
End If

lblTotal.Text = Convert.ToString(dblTotal - 2)