2012-02-20 58 views
0

我是VB新手,在分配課程時遇到了一些麻煩。基本上它應該是一個發票小計 - 找到折扣百分比,並給出實際總額。我似乎無法讓我的課程訪問用戶輸入的文本框,它只是一直返回0。這是一個家庭作業,以及...即時通訊不要求只是一些提示的答案,因爲我真的在虧損,無法弄清楚這一點!無法在類中訪問我的文本框輸入

這是我的代碼按鈕單擊事件:

Public Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalc.Click 
    'If txbxSubtotal.Text >= 500 Then 
    ' discountpercent = 0.2 
    'ElseIf txbxSubtotal.Text >= 250 And txbxSubtotal.Text < 500 Then 
    ' discountpercent = 0.15 
    'ElseIf txbxSubtotal.Text >= 100 And txbxSubtotal.Text < 250 Then 
    ' discountpercent = 0.1 
    'Else 
    ' discountpercent = 0 
    'End If 
    'discountAmount = txbxSubtotal.Text * discountpercent 
    'total = txbxSubtotal.Text - discountAmount 
    Dim myinvoice As New Getinvoice 
    myinvoice.setAmount(total = Convert.ToDecimal(txbxSubtotal.Text)) 
    total = txbxSubtotal.Text 
    MessageBox.Show(myinvoice.getdiscountAmount) 
    MessageBox.Show(myinvoice.getAmount) 
End Sub 
End Class 

,這是我的類中的代碼:

Public Class Getinvoice 

    Private subtotal As Decimal 
    Private discount As Decimal 
    Private discountAmount As Decimal 
    Private discountpercent As Decimal 
    Private amount As Decimal 

    Public Sub setAmount(ByVal total As Decimal) 
     amount = total 
    End Sub 

    Public Function getAmount() 
     Return amount 
    End Function 

    Public Sub setdiscountPercent(ByVal discPcnt As Decimal) 
     discountAmount = discPcnt 

     If amount >= 500 Then 
      discountpercent = 0.2 
     ElseIf amount >= 250 And amount < 500 Then 
      discountpercent = 0.15 
     ElseIf amount >= 100 And amount < 250 Then 
      discountpercent = 0.1 
     Else 
      discountpercent = 0 
     End If 
    End Sub 

    Public Function getdiscountAmount() 
     Return discountpercent 
    End Function 

End Class 

回答

0

你從來沒有叫

setdiscountPercent(ByVal discPcnt As Decimal) 

所以discountpercent從未設置。這就是爲什麼你得到0;

編輯:

Public Sub setdiscountPercent(ByVal discPcnt As Decimal) 
    discountAmount = discPcnt 

    If amount >= 500 Then 
     discountpercent = 0.2 
    ElseIf amount >= 250 And amount < 500 Then 
     discountpercent = 0.15 
    ElseIf amount >= 100 And amount < 250 Then 
     discountpercent = 0.1 
    Else 
     discountpercent = 0 
    End If 
End Sub 

這是你的代碼。就拿你設置這個方法discountAmount = discPcnt

內但是當你的代碼已經發布,你永遠不會調用setdiscountPercent(ByVal discPcnt As Decimal)

所以discountAmount和discountpercent永遠不會設置爲任意值一看。這是你的問題來自哪裏。

+0

雖然我真的很困惑,但即使我做msgbox檢查並查看用戶是否爲小計輸入(來自txbxsubtotal.text),我將輸入5000,並返回太多0 – Robert 2012-02-20 14:48:39

+0

你必須至少調用一次setdiscountPercent(ByVal discPcnt As Decimal),這樣你就可以將一些值存儲在「discountpercent」和「discountAmount」裏面 – Jordan 2012-02-20 15:09:30

+0

即使我不運行程序嘗試獲得折扣的百分比並且只是金額(小計),即用戶通過txbxsubtotal.text輸入即使輸入5000,它也會返回0值。所以我認爲問題在於文本框輸入沒有傳入類中? – Robert 2012-02-21 00:01:51