当任何文本框更改时 (VB)

When any of the textboxes changes (VB)

我是 VB 的初学者,我希望稍微优化一下我的代码。我有 9 个文本框,每次其中一个更改时,我 运行 一个基于其内容的子例程。有没有办法让它遍历所有 9 个文本框并在其中任何一个发生更改时注册,也许使用 for 循环。这是..我的代码现在看起来像...

Private Sub tbBox1_TextChanged(sender As Object, e As EventArgs) Handles tbBox1.TextChanged
    checkInput(tbBox1, 0, 0)
End Sub

Private Sub tbBox2_TextChanged(sender As Object, e As EventArgs) Handles tbBox2.TextChanged
    checkInput(tbBox2, 0, 1)
End Sub

Private Sub tbBox3_TextChanged(sender As Object, e As EventArgs) Handles tbBox3.TextChanged
    checkInput(tbBox3, 0, 2)
End Sub

..等等

尝试多个手柄:

Private Sub tbBox_TextChanged(sender As Object, e As EventArgs) Handles _
                              tbBox1.TextChanged, _
                              tbBox2.TextChanged, _
                              tbBox3.TextChanged
  checkInput(sender, 0, 0)
End Sub

您不需要为每个文本框使用单独的处理程序。单个处理程序方法可以处理所有这些。如果您需要将每个文本框的值传递给您的 checkInput 方法,只需使用每个文本框的 Tag 属性。

Private Sub TextBoxChanged(sender As Object, e As EventArgs) Handles tbBox1.TextChanged, tbBox2.TextChanged, tbBox3.TextChanged 'etc.
    checkInput(sender, 0, sender.Tag)
End Sub