我在Windows窗体上创建了一个groupbox。它有许多文本框(所有文本框控件)。我发现自己将这个事件处理程序添加到每个文本框中。是否有一种方法可以编写一个事件处理程序来处理每次用户从文本框移动到文本框? 以下是正在处理的当前事件的示例,该工作正常。
Private Sub CustomerIDTextBox_LostFocus(sender As Object, e As System.EventArgs) Handles CustomerIDTextBox.LostFocus
Try
CustomerDataContext1.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub CompanyNameTextBox_LostFocus(sender As Object, e As System.EventArgs) Handles CompanyNameTextBox.LostFocus
Try
CustomerDataContext1.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub ContactNameTextBox_LostFocus(sender As Object, e As System.EventArgs) Handles ContactNameTextBox.LostFocus
Try
CustomerDataContext1.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
答案 0 :(得分:1)
Dim textBoxes = Me.Controls.OfType(Of TextBox)()
For Each txtbox In textBoxes
AddHandler txtbox.LostFocus, AddressOf txtLostFocus
Next
所有txtbox'es的一个处理程序。
Private Sub txtLostFocus(sender As Object, e As System.EventArgs)
Try
CustomerDataContext1.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End sub
答案 1 :(得分:0)
喜欢这个?:
Private Sub "Your form"(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
AddHandler CustomerIDTextBox.LostFocus, AddressOf DoStuff
AddHandler CompanyNameTextBox.LostFocus, AddressOf DoStuff
AddHandler ContactNameTextBox.LostFocus, AddressOf DoStuff
End Sub
Private Sub DoStuff(ByVal sender As Object, ByVal e As EventArgs)
Try
CustomerDataContext1.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub