Load時のイベントの発生について

Formロード時のイベントの発生順は、以下の通りとなる。
・Load
・Activated
・Shown


検証
事前準備
・特になし


Public Class Form1

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Console.WriteLine(“aaa”)
 End Sub

 Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated
  Console.WriteLine(“bbb”)
 End Sub

 Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
  Console.WriteLine(“ccc”)
 End Sub
End Class



出力画面に、
aaa
bbb
ccc
と表示される。


その後は、最小化しても、他のウィンドウを被せてもActivatedイベントのみ発生する。


Shownイベントは、Loadイベントの次に来るので、
Loadイベント…処理が早いもの
Shownイベント…処理が遅いもの
と分けると、画面の表示順をある程度コントロールできる。


また、どうしても処理を終了してから次の処理に移りたいときは、
  Application.DoEvents()
をLoadイベントに記載すると、Loadイベントが完了してから、
Shownイベントが発生する。


Loadイベントに限らず、イベントの終了を待って、次のイベントを発生させる場合、
Sleepなどで待っていてもうまくいかないことが多いので、
イベントの終了を待つときには、
  Application.DoEvents()
を使用する。



システム開発のためのVB.NETプログラミング関係一覧に戻る



Google検索の結果

system-development