반응형
|
[C#] MDI 폼에서 자식폼이 열어 있을 때 앞으로 보내기 |
|
환경 : Visual Studio 2012 |
MDI 폼에서 여러 폼을 열어서 풀 스크린으로 보다보면 기존에 열어 놨던 폼 개체를 계속 생성하는 경우가 있습니다. 기존에 열려져 있다면 제일 앞으로 당겨서 보여주면 되겠죠.
▶ 아래 그림처럼 두개의 창을 서로 번갈아 가며 제일 앞으로 당겨서 화면에 보여주는 것입니다.
▶ 먼저 해당하는 폼의 개체가 생성되어서 떠 있는지 검사해야 합니다. Application.OpenForms 는 떠 있는 모든 폼개체를 가져옵니다. Foreach 를 사용해 찾고자 하는 폼이 맞는지 체크합니다.
// 모든 폼을 찾는다
foreach (Form form in Application.OpenForms)
{
// 해당하는 타입이 맞는지 검사
if (form.GetType() == typeof(FrmOrderList))
{
}
}
▶ 이렇게 foreach 를 사용해 typeof 로 동일한 폼을 찾았다면 해당하는 폼을 앞으로 보내야 합니다. Activate() 사용해 활성화 시킨후 BringToFront() 이용해 제일 앞으로 당깁니다.
// 모든 폼을 찾는다
foreach (Form form in Application.OpenForms)
{
// 열려 있는 폼이 있을때
if (form.GetType() == typeof(FrmStoreList))
{
form.Activate();
form.BringToFront();
//form.WindowState = FormWindowState.Maximized;
return;
}
}
▶ 위의 소스로 체크해서 떠 있는 폼이 없다면 새로 만들어야 겠죠. 새로 폼 개체를 생성하고 MdiParent 속성을 이용해 MDI 폼에 붙입니다.
// 새로 폼 생성 FrmStoreList f = new FrmStoreList(); f.MdiParent = this; f.Text = "거래점 보기"; f.Show();
▶ 위 소스를 구현한 전체 함수 입니다.
// 자식폼에 상점리스트 추가하기
private void SubFormAddStoreList()
{
// 모든 폼을 찾는다
foreach (Form form in Application.OpenForms)
{
// 열려 있는 폼이 있을때
if (form.GetType() == typeof(FrmStoreList))
{
form.Activate();
form.BringToFront();
//form.WindowState = FormWindowState.Maximized;
return;
}
}
// 폼새로 생성 .
FrmStoreList f = new FrmStoreList();
f.MdiParent = this;
f.Text = "거래점 보기";
f.Show();
}
반응형
'기타 언어 > C# & MFC' 카테고리의 다른 글
| [C#] ListView 선택한 행 더블 클릭 이벤트를 통해 해당 값을 알아오는 방법 (0) | 2018.05.19 |
|---|---|
| [C#] 자바스크립트에서 C# 함수호출시 에러, ObjectForScripting 클래스는 COM … (0) | 2015.05.31 |
| [C#] HashTable 사용방법과 예제 모음 (0) | 2015.02.24 |
| [C#] 다중폼(WinForms MID) 자식윈도우 사이즈 조절하기 (0) | 2015.02.07 |
| [C#] MySQL 연결후 데이터 저장, 조회 하기 (2) | 2015.01.24 |
| [C#] MySQL 데이터 저장시 한글이 깨질 때 (0) | 2015.01.03 |
| [Visual C#] Environment 를 통해 시스템 정보, OS 버전알아오기 (0) | 2014.11.25 |
| Visual C# 웹브라우저 WebBrowser 를 이용해 HTML 소스 가져오기 (1) | 2014.10.18 |
