私は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
割引率は小計の量によって異なりますが、私はmsgboxをチェックして小計(txbxsubtotal.textから)の入力があったら5000を入力してもそれを返すので本当に混乱します。 0 – Robert
あなたは "discountpercent"と "discountAmount"内に格納されている値を持つことができるようにsetdiscountPercent(ByVal discPcnt Decimal)atleastを呼び出す必要があります – Jordan
私がしようとするプログラムを実行していなくても、 )これは、ユーザーがtxbxsubtotal.textから入力する値です.5000を入力しても0の値を返します。だから、問題はテキストボックスの入力がクラスに渡されていないと思いますか? – Robert