C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 別の共通クラスでコントロールイベントハンドラの追加を行いたい


(過去ログ 89 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■53015 / inTopicNo.1)  別の共通クラスでコントロールイベントハンドラの追加を行いたい
  
□投稿者/ パニナロ (1回)-(2010/09/01(Wed) 13:12:56)

分類:[VB.NET/VB2005 以降] 

VB2008で試行錯誤しています。
フォームAというものがあり、ある処理により
・フォームA上に複数のテキストボックスを追加する。
 テキストボックスの配置は決められたロジックで行う。
・追加した複数のテキストボックスにイベントハンドラを追加する
 例えば、AddHandler イベント, AddressOf イベントハンドラのように

しかしながら、フォームBでも上記と同じような処理が必要となり、
別クラスに共通ライブラリのような形でこのメソッドを用意できればいいなと思っています。

そこで質問なのですが、これを共通ライブラリのメソッドとして実現するとなると、
AddressOfで記述するイベントハンドラは引数として渡すことができるのでしょうか?
よろしくお願いします。
引用返信 編集キー/
■53018 / inTopicNo.2)  Re[1]: 別の共通クラスでコントロールイベントハンドラの追加を行いたい
□投稿者/ 魔界の仮面弁士 (1782回)-(2010/09/01(Wed) 13:55:40)
No53015 (パニナロ さん) に返信
> AddressOfで記述するイベントハンドラは引数として渡すことができるのでしょうか?

Array.ForEach メソッドの第2引数のように、
デリゲートインスタンスを渡すようにしてみては如何でしょう。
引用返信 編集キー/
■53020 / inTopicNo.3)  Re[2]: 別の共通クラスでコントロールイベントハンドラの追加を行いたい
□投稿者/ パニナロ (2回)-(2010/09/01(Wed) 14:18:27)
2010/09/01(Wed) 14:19:19 編集(投稿者)
No53018 (魔界の仮面弁士 さん) に返信
> ■No53015 (パニナロ さん) に返信
>>AddressOfで記述するイベントハンドラは引数として渡すことができるのでしょうか?
> 
> Array.ForEach メソッドの第2引数のように、
> デリゲートインスタンスを渡すようにしてみては如何でしょう。

魔界の仮面弁士様。早速の書き込みありがとうございました。
ところで、デリゲートインスタンスとは何でしょうか?
以下のイベントハンドラのデリゲートインスタンスというものをつくるにはどうすればよいのでしょうか?

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '処理する
End Sub

勉強不足で申し訳ありませんが、解説をお願いいたします。

引用返信 編集キー/
■53022 / inTopicNo.4)  Re[3]: 別の共通クラスでコントロールイベントハンドラの追加を行いたい
□投稿者/ パニナロ (3回)-(2010/09/01(Wed) 14:36:40)
色々と試したところ、自己解決しました。
念のため、内容を以下に記載します。
・共通ライブラリ側の引数にSystem.EventHandlerを用意する。
 例えば、ByVal evh As System.EventHandler
・共通ライブラリ内で、以下のようにイベントハンドラを追加する。
 例えば、AddHandler 追加したTextBoxのイベント, 引数のイベントハンドラ(上記例だと、evh)
・共通ライブラリの呼び出し側では、イベントハンドラの引数として、例えば、
 AddressOf TextBox1_TextChangedのようにする。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -