質問するログイン新規登録

質問編集履歴

2

補足の追加

2016/03/29 16:32

投稿

msssk
msssk

スコア12

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

例の追加

2016/03/29 16:32

投稿

msssk
msssk

スコア12

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.全ての入力コントロールをクラス宣言してイベント発生させるのに意味が見出せませんが、