在FrmMain窗體打開FrmAddStu窗體時,可以使用窗體的Show方法,比如:private void 添加學員AToolStripMenuItem_Click(object sender, EventArgs e)
{
FrmAddStu objfrmAddStu = new FrmAddStu();//實例化FrmAddStu窗體對象
objfrmAddStu.Show();顯示FrmAddStu 窗體
}
此時這樣寫的話當多次點擊這個彈出窗體按鈕時會彈出多個相同的窗體。對代碼進行如下優化解決此問題。先初始化窗體對象為null、按下打開窗體按鈕時判斷窗體對象是否已經存在,如果不存在則創建,如果存在則打開現有的窗體對象。public static FrmAddStu objfrmAddStu = null;//初始化窗體對象為空,定義為靜態的
private void 添加學員AToolStripMenuItem_Click(object sender, EventArgs e)
{
//點擊打開窗體按鈕時先判斷窗體對象是否為空。如果為空則創建窗體對象并打開窗體
if ( objfrmAddStu == null)
{
objfrmAddStu = new FrmAddStu();
objfrmAddStu.Show();
}
else
{
objfrmAddStu.Activate();//如果窗體對象不為空則激活窗體,激活只能在窗體最小化時執行
objfrmAddStu.WindowState=FormWindowState.Normal;//將窗體正常顯示出來
}
}
在FrmAddStu窗體事件FormClosed事件中添加以下代碼,即:private void FrmAddStu_FormClosed(object sender, FormClosedEventArgs e)
{
FrmMain.objfrmAddStu=null;//關閉窗體時清理窗體對象。
}
該文章在 2024/12/14 9:31:12 編輯過