所以我试图在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事件。
答案 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。请注意,当您自己的代码更改文本时会引发此事件,而不仅仅是用户输入:这可能是也可能不是(使用KeyDown
或KeyPress
来处理这些事件)。
(作为提示:一般来说轮询(在循环或定时器间隔中连续检查某些内容)是一个坏主意,因为它浪费了CPU时间。在这样的自包含程序中,当程序发生变化时,程序会收到实际的事件信息。当事情发生变化而不是使用轮询循环时,你可以准确地处理这些事件 - 只有在对外部系统(例如温度传感器或串行线路)进行采样时才需要进行轮询 - 在这种情况下,会有库或硬件处理轮询并在数据发生变化时公开事件。
您可以使用Handles
关键字在VB.NET中设置事件处理程序,而不是手动布线事件处理程序(这会为您的程序添加一些伏都教,您不能使用{{1}例如,对于动态添加的控件)
Handles