3 가지 방법 으로 윈도 우즈 폼 전환 창 구현
4329 단어 WindowsForm전환 하 다.창구.
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());
}
}
이상 은 윈도 폼 프로그램 개발 과정 에서 흔히 볼 수 있 는 페이지 전환 방식 입 니 다.
이 세 가지 방법 으로 윈도 우즈 폼 전환 창 을 실현 하 는 방법 에 대한 글 은 여기까지 입 니 다.더 많은 윈도 우즈 폼 전환 창 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
가장 간단한 웹 브라우저를 만들어 보았습니다.Visual Studio 2017을 시작한 후 새 프로젝트에서 Windows Forms Application (.NET Framework)을 선택하여 새 솔루션을 만듭니다. 표준 폼에 ComboBox 컨트롤과 Web...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.