DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

フォームがはじめて表示されたことを知る

.NET Framework 2.0以降の場合

.NET Framework 2.0からはForm.Shownイベントが追加されました。このイベントは、フォームが初めて表示されたときに発生します。

.NET Framework 1.1以前の場合

フォームがロードされてから表示された時、Form.Activatedイベントが発生します。よって、Form.Activatedイベントが初めて発生した時に、フォームが初めて表示されたと判断できます。

以下の例では、Form1_ActivatedでActivatedイベントとの接続を解除することによりForm1_Activatedが一度だけ呼び出されるようにしていますが、フラッグを立てることにより始めてのActivatedイベントかを判断することもできます。

VB.NET
コードを隠すコードを選択
'フォームのLoadイベントハンドラ
Private Sub Form1_Load(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load
    'Activatedイベントハンドラの追加
    AddHandler Me.Activated, AddressOf Form1_Activated
End Sub

Private Sub Form1_Activated( _
    ByVal sender As Object, ByVal e As EventArgs)
    'Form1_Activatedが二度と呼び出されないようにする
    RemoveHandler Me.Activated, AddressOf Form1_Activated

    Console.WriteLine("Form1が表示されました")
End Sub
C#
コードを隠すコードを選択
//Form1のLoadイベントハンドラ
private void Form1_Load(object sender, System.EventArgs e)
{
    //Activatedイベントハンドラの追加
    this.Activated += new EventHandler(Form1_Activated);
}

private void Form1_Activated(object sender, EventArgs e)
{
    //Form1_Activatedが二度と呼び出されないようにする
    this.Activated -= new EventHandler(Form1_Activated);

    Console.WriteLine("Form1が表示されました");
}
  • 履歴:
  • 2007/1/15 「.NET Framework 2.0以降の場合」を追加。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。