- - PR -
handlerが登録済か判定したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-13 19:26
はじめまして。
VB で Event Handlerの追加は addhandler xxxx.click , addressof xxxx と しますが. Event登録が既に登録済か否かの判別は着くのでしょうか Private Sub KBC1(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox("K1") End Sub Private Sub KBC2(ByVal sender As System.Object, ByVal e As System.EventArgs) MsgBox("K2") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click RemoveHandler Button1.Click, AddressOf KBC1 RemoveHandler Button1.Click, AddressOf KBC2 AddHandler Button1.Click, AddressOf KBC1 End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click RemoveHandler Button1.Click, AddressOf KBC1 RemoveHandler Button1.Click, AddressOf KBC2 AddHandler Button1.Click, AddressOf KBC2 End Sub BUTTON2の押下時は Button1.Clickで KBC1を , BUTTON3の押下時は Button1.clickで KBC2を Callします. 上記のコードで, Errorにはならず,目的通り実行されるのですが 各Button_CLICK Eventの RemoveHandler Button1.Click, AddressOf KBC1 RemoveHandler Button1.Click, AddressOf KBC2 が冗長で, Handler無登録状態で, RemoveHanderが走ることになり, 気色悪いです。 if button1.handler登録済 then removehandler button1.click addressof xxxx ができないものかご相談です. addressof xxxx の xxxx が確定しないので難しいかも知れません. よろしくお願いします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-09-13 19:27 ] | ||||
|
投稿日時: 2006-09-13 19:53
>Event登録が既に登録済か否かの判別は着くのでしょうか
つきません。 イベントハンドラを切り替えるのではなく、イベントハンドラの挙動を切り替えれた方がいいです。
| ||||
|
投稿日時: 2006-09-13 19:56
無理ですね。
ところで、普通イベントハンドラは初めに一回登録するだけ、と言うのが一般的な使用方法だと思います。 ハンドラ内でフラグ等を見て実際に処理を行うかどうかを判断する方がシンプルで良いと思うのですが。 | ||||
|
投稿日時: 2006-09-13 20:17
けんじさん、ありがとうございます。
Hongliang さん、ありがとうございます。 そうですね、無理ですね。 動的にHandlerを脱着させる仕様自体が無理でしたね。 制御フラグでコントロールするように仕様変更します。 ありがとうございました。 |
1