DOBON.NET

条件によりフォームが閉じられないようにする

勝手にフォームが閉じられては困る場合があります。このような時は、フォームのFormClosingイベントハンドラでフォームを閉じてもよいか判断し、閉じないときにはFormClosingEventArgsオブジェクトのCancelプロパティをTrueにします。

次の例ではフォーム(Form1)が最大化状態のときは閉じられないようにしています。

VB.NET
コードを隠すコードを選択
'フォームのFormClosingイベントハンドラ
Private Sub Form1_FormClosing(ByVal sender As System.Object, _
        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
        Handles MyBase.FormClosing
    If Me.WindowState = FormWindowState.Maximized Then
        '最大化されているときは閉じない
        e.Cancel = True
    End If
End Sub
C#
コードを隠すコードを選択
//フォームのFormClosingイベントハンドラ
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (this.WindowState == FormWindowState.Maximized)
        //最大化されているときは閉じない
        e.Cancel = true;
}

.NET Framework 1.1以前ではFormClosingイベントが使えませんので、フォームのClosingイベントハンドラで、CancelEventArgs.CancelプロパティをTrueにします。

VB.NET
コードを隠すコードを選択
'フォームのClosingイベントハンドラ
Private Sub Form1_Closing(ByVal sender As Object, _
        ByVal e As System.ComponentModel.CancelEventArgs) _
        Handles MyBase.Closing
    If Me.WindowState = FormWindowState.Maximized Then
        '最大化されているときは閉じない
        e.Cancel = True
    End If
End Sub
C#
コードを隠すコードを選択
//フォームのClosingイベントハンドラ
private void Form1_Closing(object sender,
    System.ComponentModel.CancelEventArgs e)
{
    if (this.WindowState == FormWindowState.Maximized)
        //最大化されているときは閉じない
        e.Cancel = true;
}
  • 履歴:
  • 2007/1/15 .NET Framework 2.0に関する記述を追加。

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

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

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。