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イベントハンドラが発火する。
コメント