【问题标题】:Advanced Calculator高级计算器
【发布时间】:2013-10-03 10:56:31
【问题描述】:

我有一个计算器,最后有这个代码:

'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 位数。

如何更改代码,以便在输入数字时限制文本框,但在回答总和时不限制?

【问题讨论】:

    标签: vb.net calculator


    【解决方案1】:

    你可以使用 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
    

    【讨论】:

    • 它不是 System.EventArgs 的一部分
    【解决方案2】:

    在表单级别获取布尔变量“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
    

    【讨论】:

    • 我是一个非常非常业余的程序员,我不知道你在说什么=
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多