0

最後にこのコードを含む電卓があります。

「3桁以上押されたときのコード」

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


    If TextBox1.Text.Length > 3 Then
        MsgBox("You can't add any more numbers!")
        TextBox1.Text = TextBox1.Text.Remove(TextBox1.Text.Length - 1, 1)

しかし、電卓で合計を計算すると、テキストボックスはまだ数字に制限されているため、すべての答えは 3 桁の長さになります。

数字を入力するときはテキストボックスを制限し、合計を答えるときは制限しないようにコードを変更するにはどうすればよいですか?

4

2 に答える 2

0

e.Cancel = True を使用できます

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


    If TextBox1.Text.Length > 3 Then
        MsgBox("You can't add any more numbers!")
        e.Cancel = True
于 2013-10-03T11:06:15.657 に答える
0

フォーム レベルでブール変数 'IsModifiedByUser' を取得します。デフォルトでは、true になっているはずです。プログラムでテキスト ボックスを変更する場合は、その前に IsModifiedByUser の値を false に設定します。テキスト ボックスをプログラムで変更したら、IsModifiedByUser の値を true に設定します。IsModifiedByUser が true の場合にのみ、テキスト ボックスの値の長さを確認します。

Private IsModifiedByUser As Boolean = True

Protected Sub TextBox1_TextChanged(sender As Object, e As EventArgs)
    If TextBox1.Text.Length > 3 AndAlso IsModifiedByUser Then
        MsgBox("You can't add any more numbers!")
        e.Cancel = True
    End If
End Sub

Public Sub CalculateValue()
    IsModifiedByUser = False
    'Do the calculation and set the value in textbox
    IsModifiedByUser = True
End Sub
于 2013-10-03T11:09:49.943 に答える