Visual Basic 2010 - Groupbox,组事件处理程序

时间:2014-01-02 17:07:17

标签: vb.net events handler groupbox

我在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

2 个答案:

答案 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