文本框值更改的问题

时间:2011-02-28 12:47:07

标签: .net vb.net winforms textbox

我有一个TextBox, 情况是当用户将其留空时,OK按钮被禁用。如果用户根据天数键入持续时间值,则会启用该按钮。

问题是:假设用户点击文本框,键入:100,他意识到他犯了一个错误,他删除了该值并试图开始填写其他一些文本框然后再回来,在此当用户点击表单的其他部分时,该值自动为0并且Ok按钮为Enabled Now。

我该如何避免这种情况?

Private Sub txtMembershipDuration_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMembershipDuration.TextChanged
If txtMembershipDuration.Text = "" Then
  btnOK.Enabled = False
End If  End Sub

另外,如何控制自动0?

2 个答案:

答案 0 :(得分:1)

在支票上使用TryParse,并确保它大于0,而不是检查它是否为“”。 Link: TryParse

答案 1 :(得分:0)

如果它不是有效值,您可以检查“0”

Private Sub txtMembershipDuration_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtMembershipDuration.TextChanged
    If txtMembershipDuration.Text = "" OrElse
       txtMembershipDuration.Text = "0" Then
        btnOK.Enabled = False
    End If
End Sub