在Windows Mobile窗体上,有“OK”和“X”两种形式按钮。
1.在Form的属性里,设置“MinimizeBox=false”,则窗体显示”OK”,点击该按钮窗体销毁并退出。
2.设置“MinimizeBox=true”,则窗体显示”X”,点击该按钮,窗体隐藏但不销毁。
3.X不能关闭窗体,OK才是关闭,这是与桌面系统的一个重要区别。
但有时我们希望在点击“X”按钮的时候能够销毁窗体,而不是隐藏该窗体,那么如何实现呢?
首先,点击“X”按钮的时候,并不激发窗体的closed方法,所以我们不能在该方法里将窗体销毁,但我们可以通过另外一种途径实现。
当点击“X”按钮的时候,该窗体隐藏,所以该窗体将失去焦点,这时,有两种事件将发生:
1)LostFocus事件;
2)Deactivate事件;
我们只需要在这两种事件引发的方法中,销毁窗体,即可实现真正的退出而非隐藏窗体。
实现步骤如下:
1)在Form的构造函数中,添加如下代码:
this.Deactivate += new System.EventHandler(this. form_Closed);
或者
this.LostFocus += new System.EventHandler(this.form_Closed);
2)在Form类中,添加方法代码:
private void form_Closed (object sender, EventArgs e)
{
this.Dispose();
}
根据以上的描述,我们即可实现点击“X”按钮销毁窗体而非隐藏窗体。