输入一定数量的文本后,如何使文本框启用?

时间:2019-01-20 22:05:06

标签: vb.net forms

所以我的下一个问题(我知道我知道我已经有很多问题,但是我正在学习,我的老师很烂) 但我试图让文本框在输入一定数量的文本后变为只读状态。我知道如何使它成为只读文本框,但是只有在Ive输入了一组数据之后才可以。输入7天的数据后,我需要将其设置为只读

我尝试了inputtextbox.enabled = false

'Validating if user input is a number or not 
Dim output As Integer
If Not Integer.TryParse(InputTextbox.Text, output) Then
    MessageBox.Show("ERROR! Data must be a number")
    InputTextbox.Text = String.Empty
Else
    UnitsTextbox.AppendText(Environment.NewLine & InputTextbox.Text)
    InputTextbox.Text = String.Empty
End If

InputTextbox.Enabled = False

我希望用户输入7天的数据后禁用它,但是只有输入一天的数据后才禁用

2 个答案:

答案 0 :(得分:0)

这是一些简单的伪代码

    Private Sub InvalidateTextbox(sender As TextBox, e As KeyEventArgs) Handles TextBox1.KeyUp, TextBox2.KeyUp
    'FOR ANY TEXTBOX YOU WANT TO CONTROL WITH THIS SUB, ADD AN ADDITIONAL HANDLE.
    If Strings.Len(sender.Text) > 7 Then
        '^SIMPLE CONDITIONAL, CHECKING IF THE LENGTH IS MORE THAN SEVEN CHARACTERS, MODIFY THIS TO SUIT YOUR NEEDS.
        sender.Enabled = False
        '^IF THE CONDITIONAL IS TRUE, DEACTIVATE THE CONTROL, IF THAT IS WHAT YOU ARE LOOKING FOR.
        sender.ReadOnly = true
        '^IF YOU WANT READONLY,NOT ENABLED/DISABLED.
    End If
End Sub

在文本框处于活动状态时,每按一次键,此代码将执行一次。 “句柄”之后的内容定义了哪些事件将触发子项。

发件人成为触发子项的文本框对象。 e保留了键盘的所有事件参数,因此您可以评估按下了哪个键之类的东西以及其他简洁的东西。

如果要启用/禁用还是只读,这两个选项都包含一些困惑。

答案 1 :(得分:0)

由于UnitsTextbox的条目都是用代码完成的,因此可以将TextBox设置为仅在设计时读取。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim output As Integer
    If Not Integer.TryParse(InputTextbox.Text, output) Then
        MessageBox.Show("ERROR! Data must be a number")
    Else
        UnitsTextbox.AppendText(Environment.NewLine & InputTextbox.Text)
    End If
    'Moved this line outside of the If because it happens either way
    InputTextbox.Text = String.Empty
    If UnitsTextbox.Lines.Length >= 7 Then
        Button2.Enabled = False
    End If
End Sub