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”。默认情况下,它应该是真的。当您以编程方式修改文本框时,在此之前将 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 回答