イベントハンドラの削除 RemoveHandler AddressOf vb.net入門

      2017/07/21

イベントハンドラの追加 AddHandler AddressOf

イベントハンドラとは
イベントを発生を監視してイベントに対応した
メソッドを処理を実行します。

イベントドリブン型のプログラムではデリゲートに登録している必要があります。
デリゲートに登録されているメソッドを呼び出すことにより
イベントによって実行することができます。

vbでのハンドラは主に処理を書いているところです。
Handlerの削除は
このサンプルではサブルーチンをハンドラとしてついかしてます。

イベントハンドラの削除
RemoveHandlerイベント名, AddressOf 削除したいサブルーチン等

RemoveHandlerは
イベントに関連付けられているイベントハンドラを削除することができます。

AddressOfとは

メソッドやイベントハンドラを紐づける時に使用しますね。
コンピューター的にはアドレスを指定しているのではないかと想像で決まます。

デリゲートにメソッドを登録するときにも使用します。
イベントハンドラの追加や削除にも使用されていますね。

イベント名はクラス名からイベント名を書きます。
AddressOf は場所をアドレスを教えてますね。

サンプルソース

Public Class Form1
Event sample()

Sub eventsample()
MsgBox("イベント処理しました。")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AddHandler Me.sample, AddressOf eventsample
RemoveHandler Me.sample, AddressOf eventsample
RaiseEvent sample()

End Sub

End Class

End Class
実行結果は
何も起こりません。

RemoveHandlerで削除したので当然ですね。
サブルーチンを直接削除したわけではなく
ハンドラで紐付けを削除しています。
直接callしない限りは動くことはないでしょう。

PR



 - vb.netさんぷる

Translate »