Как получить текстовое поле для включения после ввода определенного количества текста? - PullRequest
0 голосов
/ 21 января 2019

Итак, мой следующий вопрос (я знаю, я знаю, у меня уже было много вопросов, но я учусь, и мои учителя сосут) но я пытаюсь заставить текстовое поле перейти на чтение только после того, как было введено определенное количество текста. Я знаю, как сделать его доступным только для чтения, но только после ввода одного набора данных. мне нужно, чтобы он был доступен только после 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 голосов
/ 21 января 2019

Поскольку все записи в 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
0 голосов
/ 21 января 2019

Вот простой псевдокод

    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

Этот код будет выполняться при каждом нажатии клавиши, когда текстовые поля активны. Что после «Ручки» определяет, какие события будут вызывать подпрограмму.

отправитель становится объектом текстового поля, который вызвал подпрограмму. Он содержит все аргументы события для клавиатуры, так что вы можете оценивать такие вещи, как то, какая клавиша была нажата, и другие аккуратные вещи.

Было некоторое замешательство, если вы хотели включить / отключить или только чтение, оба варианта включены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...