質問編集履歴
2
補足の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,8 +38,9 @@
|
|
38
38
|
|
39
39
|
そこで質問させていただきたいのですが、
|
40
40
|
▼1.全ての入力コントロールをクラス宣言してイベント発生させるのに意味が見出せませんが、
|
41
|
-
少なくても共通イベントを持たない かつ チェックボックスやラジオボタン以外も
|
41
|
+
少なくても「共通イベントを持たない かつ チェックボックスやラジオボタン以外」も
|
42
|
-
クラス変数化するのは、どのようなメリットがあるのでしょうか。
|
42
|
+
積極的にクラス変数化するのは、どのようなメリットがあるのでしょうか。
|
43
|
+
(イベントの追加・解除が必要な画面でならばHandlesのよるイベントハンドラーは解決できない場合もあり!?)
|
43
44
|
|
44
45
|
▼2.C#でもコントロールのオブジェクト変数化は普通に行われている技術でしょうか。
|
45
46
|
|
1
例の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,12 +2,39 @@
|
|
2
2
|
|
3
3
|
同僚の新規画面の実装方法ですが、
|
4
4
|
画面のテキストボックスやチェックボックス等の全ての入力コントロールを、
|
5
|
-
イベント宣言された
|
5
|
+
イベント宣言されたインスタンス変数、またはコントロール配列の変数で保持しており、
|
6
6
|
各イベントはそのクラス変数に紐づいたイベントハンドラーをキックして処理します。
|
7
|
+
処理や条件によりイベントハンドラーを付け替え、解除は行っていません。
|
8
|
+
(複雑な制御の必要のない画面の為)
|
7
9
|
|
10
|
+
------------------------
|
11
|
+
(例:細かい部分が間違っていたらすいません)
|
12
|
+
Private WithEvents obj名前 as TextBox = txt名前
|
13
|
+
Private WithEvents obj年齢 as TextBox = txt年齢
|
14
|
+
Private obj年代 as CheckBox() = New CheckBox(10)
|
15
|
+
...
|
16
|
+
|
17
|
+
Public Sub New()
|
18
|
+
Dim i As Integer
|
19
|
+
For i = 0 To 9
|
20
|
+
AddHandler obj年代(i).KeyPress, AddressOf test_CheckedChanged
|
21
|
+
Next
|
22
|
+
End Sub
|
23
|
+
|
24
|
+
Public Sub test_CheckedChanged(ByVal Object sender, ByVal EventArgs e)
|
25
|
+
...
|
26
|
+
End Sub
|
27
|
+
|
28
|
+
Public Sub obj名前_LostFocus(ByVal Object sender, ByVal EventArgs e) Handles obj名前.LostFocus(
|
29
|
+
...
|
30
|
+
End Sub
|
31
|
+
|
32
|
+
------------------------
|
33
|
+
|
8
34
|
私の認識でコントロールをクラス変数で保持しておくのは以下のメリット(場合)だと考えていました。
|
9
35
|
・VB6時代にコントロール配列があって、同グループのチェックボックスをループ処理などで纏めて処理する為の管理
|
10
36
|
・同一イベントハンドラーを複数コントロールに紐づけて処理させる為にコントロールをオブジェクト化
|
37
|
+
・イベントハンドラーの動的な紐づけ
|
11
38
|
|
12
39
|
そこで質問させていただきたいのですが、
|
13
40
|
▼1.全ての入力コントロールをクラス宣言してイベント発生させるのに意味が見出せませんが、
|