2011-07-01 3 views
1

フォームがロードされたときに、データベースからデータが取り込まれるコントロールがたくさんあります。私は初期値(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 
を試してみてください
関連する問題