状況に応じて動的に結びつけるには{AddHandlerステートメント・RemoveHandlerステートメント}を使う
(1)例えば MyClickプロシージャとButton2のClickイベントを結びつけるには
AddHandler 変数.イベント名 AddressOf イベントの関数
AddHandler Button2.Click , AddressOf MyClick
フォームにButton1,2を貼り付けてから
Private Sub Button1_Click( .... ) Handles Button1.Click
AddHandler Button2.Click , AddressOf MyClick
End Sub
Private Sub MyClick( .... )
MsgBox( sender.name )
End Sub
このプログラムを実行するとはじめButton2をクリックしても何も起きない。
Button1をクリックしてからButton2をクリックすると
MyClickプロシージャが呼び出される
Private Sub Button1_Click( .... ) Handles Button1.Click
MsgBox("はじめ")
RemoveHandler Button1.Click , AddressOf Button1_Click
AddHandler Button1.Click , AddressOf MyClick
End Sub
Private Sub MyClick( .... )
MsgBox("2回目以降")
End Sub
Button1_ClickプロシージャにHandles句があるので、はじめはButton1をクリックするとこのプロシージャ
が呼び出されます。
ところが、このプロシージャの中でRemoveHandlerステートメントが使用されていて、
Button1のClickイベントとButton1_Clickプロシージャの結びつきが削除されてしまう
それで新たにAddHandlerステートメントを利用して
Button1のClickイベントはMyClickプロシージャに結びつけられる
0 件のコメント:
コメントを投稿