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