|
http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/ee8c3a40-a5cf-4940-967d-09a288ab3328
MDI 폼이 아닌 일반폼의 경우에 중복으로 폼이 생성되는것을 방지한다
/// <summary>
/// 현재 열려있는 폼 중복생성 방지
/// </summary>
/// <param name="tp">The tp.</param>
/// <returns></returns>
private bool FormIsExist(Type tp)
{
foreach (Form form1 in Application.OpenForms)
{
if (form1.GetType() == tp)
{
form1.Activate();
return true;
}
}
return false;
}
<응용>
/// <summary>
/// 폼을 중복생성하지 않고 보여줌
/// </summary>
/// <param name="frm">The FRM.</param>
protected void FrmShow(Form frm)
{
bool FrmisExist = new bool();
FrmisExist = false;
foreach (Form form1 in Application.OpenForms)
{
if (form1.GetType() == frm.GetType())
{
FrmisExist = true;
}
}
// 폼존재여부에 따라서 생성과 파기
if (!FrmisExist)
{
frm.Show();
frm.Activate();
}
else
{
frm.Dispose();
}
}
호출하기
FrmShow(new WorkUnitSeting()); //폼을 생성하여 넘겨줌
MDI 폼의 폼의 자식폼중 중복으로 폼이 생성되는것을 방지한다.
private bool FormIsExist(Type tp)
{
foreach (Form form1 in this.MdiChildren)
{
if (form1.GetType() == tp)
{
form1.Activate();
return true;
}
}
return false;
}
|