2014-03-06 44 views
0

我在寫一個包含三種表單和一個模塊的程序。一個表單有兩個列表框,一個用於銷售物品,一個用於購買物品,還有一個用於輸入他們想要的每個物品的數量的文本框,以及用於計算總價格的按鈕。出售的項目,其價格如下所列:在Visual Basic中使用模塊

小麥Bread- $ 1.15 白色Bread- $ 1.05 Donuts- $ 0.50 8.3%的營業稅 Raisins- $ 0.25,2.0%的營業稅

就像我說的,除此之外還有其他兩種形式,但是一旦我明白如何使用這個形式,其他形式就不會成爲問題。

該模塊應該用於記錄所有稅款,並用於執行所有稅務相關功能。

問題是,我從來沒有使用模塊之前,不知道如何設置它,然後從我的其他形式進行調整。這是迄今爲止第一種形式我寫的代碼,

Option Strict On 
Public Class Form1 

Dim total As Double = 0 
Dim Quantity As Integer 

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click 
    If (txtQuantity.Text = "") Then 
     MessageBox.Show("Please enter a quantity for the item you selected") 
    ElseIf Not Integer.TryParse(txtQuantity.Text, Quantity) Then 
     MessageBox.Show("The quantity entered is not numeric. Please add a numeric quantity.") 
     Exit Sub 
    Else 
     lstPurchased.Items.Add(txtQuantity.Text & " " & lstSale.Text) 
    End If 
End Sub 

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click 
    lstPurchased.Items.Clear() 
    txtQuantity.Clear() 
End Sub 

Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click 
    For Each item In lstSale.SelectedItems 
     Select Case CStr(item) 
      Case ("Wheat Bread") 
       total += (CDbl(FormatCurrency(txtQuantity.Text)) * 1.15) 
      Case ("White Bread") 
       total += (CDbl(FormatCurrency(txtQuantity.Text)) * 1.05) 
      Case ("Donuts") 
       total += (CDbl(FormatCurrency(CDbl(txtQuantity.Text) * 0.5 * DONUT_TAX))) 
      Case ("Raisins") 
       total += (CDbl(FormatCurrency(CDbl(txtQuantity.Text) * (0.25 * RAISIN_TAX) + 0.25))) 
     End Select 
    Next 
    MessageBox.Show(CStr(total)) 
End Sub 
End Class 

這裏是小我的模塊,就像我說的,我從來沒有使用模塊之前,所以我不知道如何設置它。

Module TaxesModule 
Public Const DONUT_TAX As Decimal = 0.083 
Public Const RAISIN_TAX As Decimal = 0.02 
Public Const SS_TAX As Decimal = 0.062 

Public Function SalesTax(ByVal 

End Module 

任何幫助或建議將不勝感激。

回答

1

爲您的計算按鈕點擊動作,你必須去每個選定的項目。像這樣:

 
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click 
     Dim total As Double = 0 

     'summarize all selected items 
     For Each item In lstSale.SelectedItems 
      Select Case CStr(item) 
       Case ("Wheat Bread") 
        total += (CDbl(FormatCurrency(txtQuantity.Text)) * 1.15) 
       Case ("White Bread") 
        total += (CDbl(FormatCurrency(txtQuantity.Text)) * 1.05) 
       Case ("Donuts") 
        total += (CDbl(FormatCurrency(CDbl(txtQuantity.Text) * 0.5 * DONUT_TAX))) 
       Case ("Raisins") 
        total += (CDbl(FormatCurrency(CDbl(txtQuantity.Text) * (0.25 * RAISIN_TAX) + 0.25))) 
      End Select 
     Next 
     MessageBox.Show(CStr(total)) 
    End Sub 

所有變量,函數等。可以從您的代碼中的任何位置訪問,而無需創建它的實例。所以,你可以在模塊中保留稅款。

接入模塊:

 
Public Class MyClass1 
    Private Sub DoSomething() 
     TOTAL += Add(40, 30) 
    End Sub 
End Class 

Public Class MyClass2 
    Private Sub DoSomething() 
     TOTAL += Add(10, 20) 
    End Sub 
End Class 

Public Module MyModule1 
    Public TOTAL As Integer = 0 
    Public Function Add(ByVal firstValue As Integer, ByVal secondValue As Integer) As Integer 
     Return firstValue + secondValue 
    End Function 
End Module 
+0

感謝您的幫助,但它仍然無法正確遞增總。另外,我對模塊還是很困惑,比如我將如何在模塊中設置稅款? –

+0

由於這個答案和其他答案的組合,總得到正確增加,但仍然卡在模塊上。 –

1

你應該在一流水平總申報,而不是在事件處理程序...

Option Strict On 
Public Class Form1 
Dim total As Double = 0 '<---- put it here 

.... 
.... 

End Class 
+0

謝謝,這工作! –