如何在文本框更改时启用/禁用按钮

时间:2013-06-30 15:01:42

标签: .net vb.net winforms visual-studio-2010 event-handling

我有一个包含目录的文本框。所以我检查当前机器上是否存在此目录,如果不存在 - 我希望按钮被禁用。

此外,如果文本框为空,我希望按钮启用。

冗长,简短 - 我希望在文本框中更改时控制按钮的可用性。我知道如何检查这些更改,我也知道这是使用EvenHandlers和Listeners完成的,但我真的不知道如何使用它们,如果有人可以给我一个示例代码或步骤说明如何做到 - 这会很棒。因为我需要快速。

修改 问题是我希望这一切都是动态的,所以我想我需要一个Listener来跟踪文本框值的状态。

F.e。,文本框为空,按钮为Enabled。然后我开始键入一个目录,因为键入的路径不是有效的目录 - 按钮是Disabled。但是这个目录生效的那一刻 - 按钮就会启用。

3 个答案:

答案 0 :(得分:1)

在表单和代码中添加一个按钮(Button1)和一个文本框(TextBox1):

    Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

        If (TextBox1.Text Is Nothing Or TextBox1.Text.Trim().Length < 1) Then
            Button1.Enabled = False
        ElseIf (Not System.IO.Directory.Exists(TextBox1.Text)) Then
            Button1.Enabled = False
        ElseIf (System.IO.Directory.Exists(TextBox1.Text)) Then
            Button1.Enabled = True
        End If

    End Sub

答案 1 :(得分:1)

如果目录不存在则要禁用按钮,如果存在则启用

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

    Button1.Enabled = Directory.Exists(TextBox1.Text)

End Sub

(需要Imports System.IO

答案 2 :(得分:0)

试试这个......

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

Dim sDir as String=TextBox1.Text

    If sDir.Length = 0 Then

        Button1.Enabled = True

    Else

        Button1.Enabled = System.IO.Directory.Exists(sDir)

    End If

End Sub