我有大约15个文本框,而不是每个文本框上的事件处理程序,并在更改时启用按钮。
例如:
Private Sub txtIsbnUpc_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles txtIsbnUpc.TextChanged
cmdSearchresults.enabled = true
End Sub
而不是通过每一个并输入更简单的方法?
答案 0 :(得分:3)
为什么不扩展Handles
列表并在一个处理程序中处理所有textBoxes事件?
Private Sub txtIsbnUpc_TextChanged(ByVal sender As Object, ByVal e As EventArgs) _
Handles txtIsbnUpc.TextChanged, txt2.TextChanaged, txt3.TextChanged
如果您的逻辑需要,可以使用sender
来检查哪个textBox触发了该处理程序。
答案 1 :(得分:1)
.NET的优点之一是能够将同一个事件处理程序连接到多个控件 您可以将相同的处理程序分配给所有15个文本框的TextChanged事件 所以不需要用相同的代码编写15个事件处理程序。
答案 2 :(得分:0)
是的,在事件签名的“句柄”部分列出您的其他文本框:
Private Sub txtIsbnUpc_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtIsbnUpc.TextChanged, Handles txt2.TextChanged,Handles txt3.TextChanged, etc....
sender.enabled = true
End Sub
答案 3 :(得分:0)
您甚至可以为每个文本框使用addhandler,并将其引导到您创建的其他函数,并使用文本框的文本更改参数....