Использование универсального обработчика событий для элементов управления в Windows Forms! - PullRequest
1 голос
/ 01 июля 2011

У меня есть несколько элементов управления, которые заполняются из базы данных при загрузке формы.Я использую словарь (control.Name в качестве ключа и Control.Value в качестве значения) для хранения начальных значений.Когда пользователь изменяет значения, я использую другой словарь, чтобы загрузить текущие значения и сравнить его с начальным словарем.Если значения отличаются, я запускаю какой-то код, чтобы предложить пользователю изменения.Я думаю, что это более хакерский и ищет лучшее решение.Пожалуйста, сообщите.

Спасибо

1 Ответ

2 голосов
/ 06 июля 2011

попробуйте

For Each ctrl As Control In me.Controls
            If TypeOf ctrl Is CheckBox Then
                AddHandler (DirectCast(ctrl, CheckBox).CheckedChanged), AddressOf Control_Changed
            ElseIf TypeOf ctrl Is TextBox Then
                AddHandler (ctrl.TextChanged), AddressOf Control_Changed
            ElseIf TypeOf ctrl Is NumericUpDown Then
                AddHandler (DirectCast(ctrl, NumericUpDown).ValueChanged), AddressOf Control_Changed
            End If

        Next

Sub Control_Changed(ByVal sender As Object, ByVal e As EventArgs)
        ' handle events here
    End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...