0

私のコードには少し作業が必要です

Public Class Form1
Dim Bread, TotalPrice As Double
Private Sub txtBread_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBread.TextChanged

    If txtBread.Text = "" Then
        TotalPrice = TotalPrice - Bread
        lblBread.Text = Bread.ToString
        lblPrice.Text = TotalPrice.ToString
    Else
        Bread = Val(txtBread.Text) * 3.25
        lblBread.Text = Bread.ToString
        TotalPrice = TotalPrice + Bread
        lblPrice.Text = TotalPrice.ToString
    End If


End Sub
End Class

私のテキスト ボックスは 1 桁の数字のみに適しています。ここでの私のエラーは、テキストボックスに2桁の数字を入力すると、実際にラベルが更新されますが、バックスペースを押しても更新されません。

4

2 に答える 2

1

変数の値は、TotalPrice新しい入力ごとに (前の入力よりも大きいか小さいかに関係なく) 増加するため、 の値はlblPrice.Text. 例えば:

txtBread.Text    TotalPrice     
   1                  1
   15                 16
   1                  17

達成したいことを正確に説明していただければ、コードを更新できます。

Dim Bread As Double
Dim TotalPrice as Double = 5 'Any constant value you want
Private Sub txtBread_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBread.TextChanged

    If txtBread.Text = "" Then
        lblBread.Text = Bread.ToString
        lblPrice.Text = Convert.ToString(TotalPrice - Bread)
    Else
        Bread = Val(txtBread.Text) * 3.25
        lblBread.Text = Bread.ToString
        lblPrice.Text = Convert.ToString(TotalPrice + Bread)
    End If
End Sub
于 2013-07-02T13:12:03.933 に答える
0

私のサンプルで試してみてください..

Public Class Form1
    Dim Bread As Double
    Dim TotalPrice As Double = 100 '---> maybe this is a result from a function

    Private Sub txtBread_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBread.TextChanged

        If txtBread.Text = "" Then
            Bread = 0
        Else
            Bread = Val(txtBread.Text) * 3.25
        End If
        lblBread.Text = Bread.ToString
        lblPrice.Text = (TotalPrice + Bread).ToString
    End Sub
End Class
于 2013-07-02T14:17:13.823 に答える