勝手にフォームが閉じられては困る場合があります。このような時は、フォームのFormClosingイベントハンドラでフォームを閉じてもよいか判断し、閉じないときにはFormClosingEventArgsオブジェクトのCancelプロパティをTrueにします。
次の例ではフォーム(Form1)が最大化状態のときは閉じられないようにしています。
'フォームの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
//フォームの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にします。
'フォームの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
//フォームのClosingイベントハンドラ private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (this.WindowState == FormWindowState.Maximized) //最大化されているときは閉じない e.Cancel = true; }