2011-07-01 46 views
1

當窗體加載時,我有一堆從數據庫填充的控件。我使用Dictionary(control.Name作爲Key和Control.Value作爲Value)來存儲初始值。當用戶更改值時,我正在使用其他字典來加載當前值並將其與inital Dictionary進行比較。如果這些值不同,我正在運行某種代碼來提示用戶進行更改。我認爲它更加黑客,並尋找更好的解決方案。請指教。在Windows窗體中爲控件使用通用事件處理程序!

感謝

回答

2

試試這個

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 
相關問題