WinForm应用一般由多个窗体组成,如果每次都弹出窗体显得不是很优雅,而在主窗体中嵌入子窗体就显得优雅许多,在学习的过程中看到了一种复用性较高的代码,可以作为主窗体嵌入子窗体的标准流程,特此记录。
实现上述功能首先要写一个通用的窗体关闭方法,通过foreach遍历容器中是否已经存在其它窗体,如果有的话就先关闭。
private void CloseForm()
{
//判断容器中是否已经存在窗体
//将this.spContainer.Panel2.Controls改成自己的
foreach (Control item in this.spContainer.Panel2.Controls)
{
if (item is Form)
{
Form objControl = (Form)item;
objControl.Close();
}
}
}
其次设置窗体对象的相应属性,其中objForm.Parent 要设置成自己的容器名,最后调用Show()方法。
private void OpenForm(Form objForm)
{
CloseForm();
objForm.TopLevel = false;
objForm.FormBorderStyle = FormBorderStyle.None;
objForm.Parent = this.spContainer.Panel2;
objForm.Dock = DockStyle.Fill;
objForm.Show();
}
嵌入新的子窗体时只需要在对应的事件中new一个窗体对象并调用OpenForm()方法传入窗体对象即可。
//显示添加新学员窗体
private void tsmiAddStudent_Click(object sender, EventArgs e)
{
FrmAddStudent frmAddStudent = new FrmAddStudent();
OpenForm(frmAddStudent);
}
© 版权声明
作者:晨岩
本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
THE END