[VB.NET]テキスト等チェンジイベントを有効化・無効化する

テキスト等のチェンジイベントは便利ですが、初期化(文字をクリア)の時などにも反応してしまいます。そういう時にイベントを動かさないようにするための方法です。
今回はDGV(データグリッドビュー)内のセル(1マス)バリューチェンジイベントで行います。


    'DGV内セルテキストチェンジイベント
    Private Sub DGV_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs)
'↑本来は末尾に、Handles DGV.CellValueChangedと記述されているが、削除する

        'ここにチェンジイベントが起きた時の動きを記述

    End Sub
    'イベント有効化
    AddHandler DGV.CellValueChanged, AddressOf DGV_CellValueChanged
    'イベント無効化
    RemoveHandler DGV.CellValueChanged, AddressOf DGV_CellValueChanged

説明

AddHandler イベント本体 , AddressOf イベント名
RemoveHandler  〃   ,     〃

イベントに、イベント本体?を関連付け、あるいは関連を外します。

コメント

普通、記述時にイベントをデザイナーのダブルクリックなどで呼び出しますが、自動で
Handles DGV.CellValueChanged
のように、イベント末尾にイベント本体が記述されています。それを削除する事で何にも反応しないコードになります。その後、AddHandlerで関連付けする、外すことで有効化、無効化できます。テキスト等の切り替わりを監視するタイミングを自由に変えられるので、知っていると便利です。

コメント

このブログの人気の投稿

[VB.NET]コンボボックスの1アイテムに2つ以上の値を持たせる

[VB.NET]8ケタの文字列を日付に変換する