다른 폼을로드하는 MDI 상위 폼이 있습니다. 두 번째 양식을로드 한 후에 더 이상 첫 번째 양식을 가져올 수 없습니다.
설명 : I 2 개 메뉴 항목을 포함하는 메뉴 스트립이 상위 폼
; 집과 검색. 각 클릭 이벤트는 해당 양식이 이미로드되어 있지 않으면 해당 양식을로드합니다.
문제 :
가. 검색을 클릭하십시오. 그런 다음 홈을 클릭하십시오.
b. 검색을 다시 한 번 클릭하면 이미 열려있는 해당 양식이 더 이상 앞으로 나오지 않습니다.
private void tsmHome_Click(object sender, EventArgs e)
{
// Loop through all open forms...
foreach (Form form in Application.OpenForms)
{
// If frmHome is Opened, set focus to it and exit subroutine.
if (form.GetType() == typeof(frmSearch))
{
form.Activate();
return;
}
}
// If frmHome is not Opened, create it.
frmHome f = new frmHome();
f.MdiParent = this;
f.Show();
}
private void tsmSearch_Click(object sender, EventArgs e)
{
// Loop through all open forms...
foreach (Form form in Application.OpenForms)
{
// If frmSearch is Opened, set focus to it and exit subroutine.
if (form.GetType() == typeof(frmSearch))
{
form.Activate();
return;
}
}
// If frmSearch is not Opened, create it.
frmSearch f = new frmSearch();
f.MdiParent = this;
f.Show();
}
내가 주석으로 처리하면 나타납니다. // return; 의도 한대로 작동하지만 동일한 유형의 새로운 형식을 만듭니다. 생각? – ASPiRE
그랜트. 사용자가 메뉴 항목을 클릭하고 해당하는 이미 열어 놓은 양식을 앞에 가져야합니다. – ASPiRE
난 네 이름이 싫어. 그게 전부입니다. ;) –