Visual Basic - 如何连续检查文本框的文本,然后启用按钮

时间:2018-03-11 23:46:27

标签: vb.net visual-studio

所以我试图在Visual Basic中创建我自己的个人待办事项列表(使用Visual Studio),我想禁用"添加项目"按钮,直到某些内容输入文本框。

我已尝试在表单加载时检查文本框中的文本,但我不知道如何动态检查文本框中的输入,然后启用/禁用该按钮。

Code I尝试过:

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        If txtItem.Text = "" Then
            btnAddItem.Enabled = False
        Else
            btnAddItem.Enabled = True
        End If
    End Sub
End Class
编辑:没关系我已经搞清楚了。我从form1_load中取出代码并写道:

btnAddItem.Enabled = False

并补充说:

如果txtItem.Text()=""然后             btnAddItem.Enabled = False         其他             btnAddItem.Enabled = True         结束如果

到文本框的text_changed事件。

1 个答案:

答案 0 :(得分:0)

我认为你的表格看起来像这样:

Items:
    [ ] Feed fish
    [ ] Enslave world
    [X] Do laundry
    [ ] Push Plumbus through the Grumbo

Add item:
    Task name: [_________]
    [Add Item]

您无需持续检查文本框 - 只需订阅文本框event更改时引发的.Text即可。这是the TextChanged event。请注意,当您自己的代码更改文本时会引发此事件,而不仅仅是用户输入:这可能是也可能不是(使用KeyDownKeyPress来处理这些事件)。

(作为提示:一般来说轮询(在循环或定时器间隔中连续检查某些内容)是一个坏主意,因为它浪费了CPU时间。在这样的自包含程序中,当程序发生变化时,程序会收到实际的事件信息。当事情发生变化而不是使用轮询循环时,你可以准确地处理这些事件 - 只有在对外部系统(例如温度传感器或串行线路)进行采样时才需要进行轮询 - 在这种情况下,会有库或硬件处理轮询并在数据发生变化时公开事件。

您可以使用Handles关键字在VB.NET中设置事件处理程序,而不是手动布线事件处理程序(这会为您的程序添加一些伏都教,您不能使用{{1}例如,对于动态添加的控件)

Handles