WinForm-解决窗体重复创建问题
				
									
					
					
						|  | 
							admin 2024年12月13日 17:29
								本文热度 1115 | 
					
				 
				在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 编辑过