반응형
[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 |