目錄
在C#中,有時需要對某個窗口Form重複打開關閉,這時就會涉及一些問題:
- 若Form窗口已經顯示出來,則無需打開新的窗口
- 若Form窗口被銷燬,則需要重新生成一個窗口並顯示
下面分成Form窗口端和調用端進行介紹:
一、Form窗口端
1、雙擊箭頭處,實現FormClosed事件。
2、修改Form10.cs代碼爲如下所示:
其中,bool變量close用於判斷窗口是否已關閉,在每次初始化一個窗口時,初始化close爲false,在關閉窗口時,設置close的值爲true。
namespace WindowsFormsApplication1
{
public partial class Form10 : Form
{
private bool close;
public Form10()
{
InitializeComponent();
close = false;
}
public bool getClose()
{
return close;
}
private void Form10_FormClosed(object sender, FormClosedEventArgs e)
{
close = true;
}
}
}
二、調用端
1、初始化一個Form
Form10 form10 = new Form10();
2、顯示窗口代碼
即,若已經初始化的form10被關閉,則重新初始化form10,並調用Show函數進行顯示;否則,直接調用Show函數進行顯示即可。
if (form10.getClosed())
{
form10= new Form10();
form10.Show();
}
else
{
form10.Show();
}
3、關閉窗口代碼
若窗口未被關閉,則調用Close函數進行關閉即可。
if (!form10.getClosed())
{
form10.Close();
}
三、寫在最後
這種方法還是有些笨拙,如果有更簡單的方法,歡迎大佬們評論告知!感謝!