現在の現場で、WindowsフォームをVB.NETで実装しております。
同僚の新規画面の実装方法ですが、
画面のテキストボックスやチェックボックス等の全ての入力コントロールを、
イベント宣言されたインスタンス変数、またはコントロール配列の変数で保持しており、
各イベントはそのクラス変数に紐づいたイベントハンドラーをキックして処理します。
処理や条件によりイベントハンドラーを付け替え、解除は行っていません。
(複雑な制御の必要のない画面の為)
(例:細かい部分が間違っていたらすいません)
Private WithEvents obj名前 as TextBox = txt名前
Private WithEvents obj年齢 as TextBox = txt年齢
Private obj年代 as CheckBox() = New CheckBox(10)
...
Public Sub New()
Dim i As Integer
For i = 0 To 9
AddHandler obj年代(i).KeyPress, AddressOf test_CheckedChanged
Next
End Sub
Public Sub test_CheckedChanged(ByVal Object sender, ByVal EventArgs e)
...
End Sub
Public Sub obj名前_LostFocus(ByVal Object sender, ByVal EventArgs e) Handles obj名前.LostFocus(
...
End Sub
私の認識でコントロールをクラス変数で保持しておくのは以下のメリット(場合)だと考えていました。
・VB6時代にコントロール配列があって、同グループのチェックボックスをループ処理などで纏めて処理する為の管理
・同一イベントハンドラーを複数コントロールに紐づけて処理させる為にコントロールをオブジェクト化
・イベントハンドラーの動的な紐づけ
そこで質問させていただきたいのですが、
▼1.全ての入力コントロールをクラス宣言してイベント発生させるのに意味が見出せませんが、
少なくても「共通イベントを持たない かつ チェックボックスやラジオボタン以外」も
積極的にクラス変数化するのは、どのようなメリットがあるのでしょうか。
(イベントの追加・解除が必要な画面でならばHandlesのよるイベントハンドラーは解決できない場合もあり!?)
▼2.C#でもコントロールのオブジェクト変数化は普通に行われている技術でしょうか。
▼3..Netの新画面にコントロール配列に違和感を感じるのは私だけでしょうか。
色々な現場、実装方法を知りたいので様々な意見頂戴できると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。