如何在VB中减去添加到总计的最后一个数字

时间:2015-03-19 15:36:28

标签: vb.net math undo

我想创建一个按钮来撤消VB.NET中的数学过程。

该程序包含一个列表。用户将项目添加到此列表中。这些物品也附有价值(价格)。这些项目由按钮表示。因此,当用户单击按钮时,特定项目及其价格将放置在列表框中。

在列表框下方,有一个Total Due文本框。这包括为了购买列表中的选定项目而需要支付的总金额。

我可以通过选择'清除最后一项'轻松删除列表中的条目。按钮。但总的到期日'不会改变。

到目前为止,我的代码如下:

 Private Sub btnClearLast_Click(sender As Object, e As EventArgs) Handles btnClearLast.Click
    'clear the last item to appear in the list box
    If lstOrder.Items.Count = 0 Then
        MessageBox.Show("No Orders to Clear", "Error")

    ElseIf lstOrder.Items.Count > 0 Then
        lstOrder.Items.RemoveAt(lstOrder.Items.Count - 1)
    End If
 End Sub

图像是理想的,但没有足够的声誉来为问题添加图像。希望这有助于多一点

1 个答案:

答案 0 :(得分:2)

我假设您有一个TextBox(NumberBox)供用户输入一个数字,一个Label(TotalLabel)显示总数,一个Button(AddButton)将Numberbox中的数字添加到总数中和另一个按钮(UndoButton)撤消上一次添加。

Private total, savedTotal As Double, canUndo As Boolean

Sub AddButton_Click(sender As Object, e As EventArgs) Handles AddButton.Click
    Dim number As Double
    If Not Double.TryParse(NumberBox.Text, number) Then
        MessageBox.Show("Please enter a valid number")
        Exit Sub 
    End If

    savedTotal = total 
    canUndo = True 
    total += number 
    TotalLabel.Text = total.ToString 
End Sub

Sub UndoButton_Click(sender As Object, e As EventArgs) Handles UndoButton.Click
    If canUndo Then
        total = savedTotal 
        canUndo = False 
        TotalLabel.Text = total.ToString 
    Else
        MessageBox.Show("Can't undo")
    End If
End Sub

请注意,此代码仅支持单个撤消操作。如果需要多个撤消操作,则需要将所有先前的值存储在集合中,例如Stack。