我想做的是当其中一个文本框为空时,该按钮被禁用,但是一旦两个文本框被填满,它将启用该按钮。我在做什么错?预先谢谢你!
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
答案 0 :(得分:4)
您要将代码用于测试文本框的内容,然后将按钮的启用状态设置为按钮单击处理程序。这意味着只有单击该按钮时,它才会触发,并且一旦被禁用,就无法将其恢复。
如果您要基于两个文本框是否为空而动态地启用或禁用按钮,则可以将代码从按钮单击处理程序移到其自己的子例程中,然后进行“ Changed”事件在两个文本框和表单的加载事件上,调用该子例程:
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
答案 1 :(得分:2)
您可以使用:
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
属性。答案 2 :(得分:0)
创建一个计时器,并在运行表单时启动它, 将此代码放在计时器刻度上
If INSERTTEXTBOXNAMEHERE.text = "" Then
INSERTBUTTONNAMEHERE.enabled = false
Else INSERTBUTTONNAMERHERE.enabled = True