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