- - PR -
独自のコントロールをまとめて操作する方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-12 19:45
お世話になります。
さかもとと申します。 VB2005 WinXP Winアプリ 現在、コンボボックスを継承したコンポーネント を複数作成しています。 (コンボA、コンボB、コンボC・・・・) それぞれ、1つのメソッドを持っており、メソッド名 は共通ですが、処理内容が若干異なります。 (メソッド名を仮に「Sakamoto」とします) 各コンボボックスをフォームのグループボックスAに 配置して、 フォームのロード時に コンボA.Sakamoto コンボB.Sakamoto コンボC.Sakamoto ・ ・ としていますが、もう少しスマートに出来るように LoadComboBoxというクラスを作成しました。 処理内容としては、上記のグループボックスA にコンボボックス(A〜C・・・)が含まれる時に それぞれの「Sakamoto」というメソッドを処理と なります。 そこで
としましたが、「★」で囲まれた部分に作成したコンボA〜C を反映させるにはどのように記述すれば良いでしょうか? それぞれのコンボボックス名(A〜C)を個別に指定すれば 出来るのですが、それだと本末転倒かと思いまして・・・。 宜しくお願い致します。 | ||||
|
投稿日時: 2006-04-12 20:07
インターフェース経由にすればいいのかな?
★ComboBox★ → ISakamoto とかにすれば
# Sub のくせに Return していたので削除 [ メッセージ編集済み 編集者: かるあ 編集日時 2006-04-12 20:52 ] | ||||
|
投稿日時: 2006-04-12 20:44
かるあ様
ご返答ありがとうございました。 おっしゃるとおりインターフェース経由で可能でした。 インターフェース経由でのキャストが出来るとは まったくの勉強不足でした・・・。 本当にありがとうございました。 | ||||
|
投稿日時: 2006-04-13 02:26
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-13 07:45
じゃんぬねっと様
おはようございます。 >DirectCast(hControl, ISakamoto).Sakamoto() なるほど、こうすればCType(・・・・とせずにより 簡潔になるんですね。 勉強になります。 遅い時間にありがとうございました。 | ||||
|
投稿日時: 2006-04-13 09:14
DirectCast でなくとも CType でも直接呼び出すことは可能です。 型が決まりきっているので変数に格納せずに直接呼び出しているに過ぎません。 DirectCast と CType は使い分けは別のポイントですね。 CType は参照型でない場合くらいにしか使わないので、DirectCast を使っているにすぎません。 DirectCast が使えるところは DirectCast を使っておいて、 '明示的に' CType にすべきところで CType を使うようにしています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-13 09:49
じゃんぬねっと様
お世話になります。 早速二つの差を調べようと[DirectCast]でGoogle叩いてみたら じゃんぬねっとさんのサイト内「CType と DirectCast の違い」 が一発ヒット。 じっくり読ませて頂きます。 ありがとうございました。 | ||||
|
投稿日時: 2006-04-13 09:51
インターフェイスを使ったデザインパターンは覚えておくと いろいろなところで活用できるので便利ですね |