Visual Studio: кнопка включения / выключения через TextBox - PullRequest
0 голосов
/ 05 февраля 2019

Что я пытаюсь сделать, когда одно из текстовых полей пусто, кнопка отключена, но как только два текстовых поля заполнены, она активирует кнопку. Что я делаю не так?заранее спасибо!

Public Class ModifiedLoanCalculatorFRM
Private Sub calculateBTN_Click(sender As Object, e As EventArgs) Handles calculateBTN.Click
    If mortgageAmountTBX.Text.Equals("") Or interestRateTBX.Text.Equals("") Then
        calculateBTN.Enabled = False
    Else
        calculateBTN.Enabled = True
    End If

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Создайте таймер и запустите его при запуске формы. Поставьте этот код на отметку таймера

If INSERTTEXTBOXNAMEHERE.text = "" Then INSERTBUTTONNAMEHERE.enabled = false Else INSERTBUTTONNAMERHERE.enabled = True

0 голосов
/ 05 февраля 2019

Вы можете использовать:

Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs) _
    Handles TextBox1.TextChanged, TextBox2.TextChanged, MyBase.Load
    Button1.Enabled = Not (String.IsNullOrEmpty(TextBox1.Text) OrElse
                           String.IsNullOrEmpty(TextBox2.Text))
End Sub

Примечания по поводу кода выше:

  • Использовать один обработчик событий для нескольких элементов управления
  • Использовать String.IsNullOrEmpty для проверкиесли текст пустой
  • Используйте OrElse вместо Or
  • Установите свойство Enabled с одним выражением.
0 голосов
/ 05 февраля 2019

Вы помещаете код для проверки содержимого текстовых полей, а затем устанавливаете включенное состояние кнопки в обработчик нажатия кнопки.Это означает, что она будет срабатывать только при нажатии кнопки, и если она когда-либо будет отключена, ее нельзя будет вернуть обратно.

Если вы хотите динамически включать или отключать кнопку в зависимости от того,ни одно из текстовых полей не пустое, вы можете переместить код из вашего обработчика нажатия кнопки в его собственную подпрограмму, а затем вызвать событие «Изменено» в обоих ваших текстовых полях и событие загрузки вашей формы, вызвать эту подпрограмму:

Private Sub setButtonState()
    If mortgageAmountTBX.Text.Equals("") Or interestRateTBX.Text.Equals("") Then
        calculateBTN.Enabled = False
    Else
        calculateBTN.Enabled = True
    End If
End Sub

Private Sub interestRateTBX_TextChanged(sender As Object, e As EventArgs) Handles interestRateTBX.TextChanged
    setButtonState()
End Sub

Private Sub mortgageAmountTBX_TextChanged(sender As Object, e As EventArgs) Handles mortgageAmountTBX.TextChanged
    setButtonState()
End Sub

Private Sub ModifiedLoanCalculatorFRM_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    setButtonState()
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...