【VB.NET】古のイベントハンドラ「LostFocus」について

VB.NET
この記事は約2分で読めます。

LostFocusとは

VB.NETのイベントについて調べていて、知ったのですが、昔(VB6時代)は、「LostFocus」というイベントハンドラがあったようです。

っていうか今もあるのですが、プロパティイベント上には表示されないので気が付きませんでした。

LostFocusイベントハンドラは現在は、Leaveイベントハンドラに置き換わっているようですが、コーディングは出来るようなので、実際にコーディングしてみました。
比較するためにLeaveイベントハンドラも記載します。

Public Class Form1

Private Sub TextBox1_Leave(sender As Object, e As EventArgs) Handles TextBox1.Leave
Console.WriteLine("TextBox1_Leave")
End Sub
Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
Console.WriteLine("TextBox1_LostFocus")
End Sub

End Class

フォーカスを移動させてみます。

出力:
TextBox1_LostFocus
TextBox1_Leave

なるほど、Leaveイベントハンドラより先に動くようです。

他にも違いがあって、LeaveイベントハンドラがForm内のフォーカス移動で発火するのに対して、
LostFocusイベントハンドラはPC画面内でフォーカスが外れても発火していました。

例)Form操作中にメモ帳をいじるとLostFocusイベントハンドラが発火する。

 

コメント

タイトルとURLをコピーしました