3 가지 방법 으로 윈도 우즈 폼 전환 창 구현

Windows Form 플랫폼 에서 창 전환 을 실현 합 니 다.흔히 볼 수 있 는 것 은 다음 과 같은 몇 가지 방법 이 있 습 니 다.예 를 들 어 Show/HowDialog 방법 으로 새로운 창 을 표시 하고 다 중 문서 인터페이스(MDI)를 통 해 부모 창 에 하위 창 을 불 러 오 거나 창 에 사용자 정의 컨트롤 을 동적 으로 불 러 옵 니 다.예 를 들 어 창 에 있 는 Panel 컨트롤 을 용기 로 사용 합 니 다.일부 사용자 정의 요 소 를 보기 인터페이스 컨트롤 로 패 널 컨트롤 에 동적 으로 불 러 옵 니 다.다음은 이 몇 가지 방식 을 간단하게 소개 하 겠 습 니 다.
Show/ShowDialog
이 두 가지 방법 을 통 해 창의 도약 을 간단하게 실현 할 수 있다.

Home home = new Home();
home.Show();

Home home = new Home();
home.ShowDialog();
쇼 방법 을 통 해 비 모드 창 을 표시 할 수 있 습 니 다.실제 창 을 창의 최상 위 대상 으로 설정 합 니 다.창 을 표시 하 는 것 은 Visible 속성 을 true 로 설정 하 는 것 과 같 습 니 다.Show 방법 을 호출 하면 Visible 속성 은 Hide 방법 을 호출 할 때 까지 true 값 을 되 돌려 줍 니 다.
쇼 Dailog 방법 은 창 을 모드 대화 상자 로 표시 하 는 것 입 니 다.대화 상 자 를 닫 아야 만 다음 코드 를 실행 할 수 있 습 니 다.

Home home = new Home();
home.Show();
//home.ShowDialog();
Debug.WriteLine("  Home  ");//  Show   ,                , ShowDialog                 
MDI 창
이 방식 은 실제로 MDI 부모 창 용 기 를 만 든 다음 각 하위 창 을 부모 창 용기 에 표시 하 는 것 입 니 다.
우선 부모 창의 IsMdi Container 속성 을 True 로 설정 해 야 합 니 다(창 을 MDI 용기 로 설정 할 지 확인).그리고 구체 적 인 점프 코드 는 다음 과 같 습 니 다.

//       
private void Form_Container_Load(object sender, EventArgs e)
{
 Login login = new Login();
 login.MdiParent = this;
 login.Show();
}

//     
private void button1_Click(object sender, EventArgs e)
{
 //       
 // ...
 Home home = new Home();
 home.MdiParent = this.MdiParent;
 home.Show();
}

위의 그림 에서 만약 에 평소의 일부 소프트웨어 개발 수요 에 따라 우 리 는 이러한 디 스 플레이 에 문제 가 있 는 것 을 보 았 다.예 를 들 어 로그 인과 메 인 메뉴 페이지 가 겹 쳐 표시 되 고 하위 페이지 에 테두리 가 있 는 등 이다.
하위 창의 로 딩 이벤트 에 창 경계선 을 추가 하 는 처 리 는 다음 과 같 습 니 다.

private void Login_Load(object sender, EventArgs e)
{
 this.FormBorderStyle = FormBorderStyle.None;//          ,            
 this.WindowState = FormWindowState.Maximized;//          ,             
}
단일 모드 를 통 해 전역 용기 인 스 턴 스 를 만 들 고 공공 하위 창 로 딩 방법 을 제공 합 니 다.

static Form_Container instance;

public static Form_Container Instance
{
 get
 {
  if (instance == null)
  {
   instance = new Form_Container();
  }
  return instance;
 }
}

public void LoadChildPage(Form form)
{
 //                 
 foreach (var item in instance.MdiChildren)
 {
  item.Close();
 }
 form.MdiParent = instance;
 form.Show();
}
지금 우 리 는 아래 의 방식 을 통 해 하위 페이지 의 전환 을 진행 할 수 있다.

Form_Container.Instance.LoadChildPage(new Login());

Form_Container.Instance.LoadChildPage(new Home());

동적 로드 서브 컨트롤
이러한 방식 의 실현 은 MDI 방식 과 유사 합 니 다.우 리 는 먼저 UC 를 만 듭 니 다.Loging 과 UC홈 두 개의 사용자 정의 컨트롤 을 하위 페이지 로 합 니 다.그리고 용기 창 을 만 듭 니 다 FormContainer,FormContainer 에 Panel 컨트롤 을 하위 페이지 의 용기 로 넣 고 사용자 정의 컨트롤 을 panel 에 연결 하여 페이지 전환 효 과 를 실현 합 니 다.

public partial class Form_Container : Form
{
 public Form_Container()
 {
  InitializeComponent();
 }

 static Form_Container instance;

 public static Form_Container Instance
 {
  get
  {
   if (instance == null)
   {
    instance = new Form_Container();
   }
   return instance;
  }
 }

 public Panel PnlContainer
 {
  get { return pnlContainer; }
  set { pnlContainer = value; }
 }

 public void LoadChildPage(Control control)
 {
  PnlContainer.Controls.Clear();
  PnlContainer.Controls.Add(control);
 }

 private void Form_Container_Load(object sender, EventArgs e)
 {
  Form_Container.Instance.LoadChildPage(new UC_Login());
 }
}

이상 은 윈도 폼 프로그램 개발 과정 에서 흔히 볼 수 있 는 페이지 전환 방식 입 니 다.
이 세 가지 방법 으로 윈도 우즈 폼 전환 창 을 실현 하 는 방법 에 대한 글 은 여기까지 입 니 다.더 많은 윈도 우즈 폼 전환 창 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기