2012-04-12 3 views
1

다른 기능 중에서도 전체 화면 모드를 제공해야하는 재사용 가능한 UserControl을 개발 중입니다.UserControl 전체 화면 만들기

하지만 어떻게해야합니까?

일반적으로 컨테이너 양식은 UserControl이 아닌 최대화되어야합니다.

UserControl을 임시로 전체 화면을 차지하게하는 방법이 있습니까?

정상적으로 수행해야하는 내용이 아니라는 점을 이해하지만이 방법을 사용해야합니다.

답변

3

일시적으로 컨트롤을 새 테두리없는 양식으로 이동하고 해당 양식을 전체 화면으로 만듭니다.

+0

일반적으로 적절한 솔루션 일 수 있지만 특정 경우 재 초기화가 필요하며 이는 내 경우에는 거의 받아 들일 수 없습니다. Windows API를 통해 실제 UserControl을 "전체 화면"으로 만들 수 있기를 바랬습니다. 예를 들어 웹 페이지에서 호스팅되는 YouTube 플레이어는 전체 화면 모드를 전환 할 때처럼 작동합니다. – SharpAffair

2

전체 화면을 제공하기 위해 usercontrol 내에서 임시 창을 만들 수 있습니다.

+0

+1, 현재 컨테이너를 수정하지 말고 새 컨테이너를 만드십시오. – Servy

3

컨트롤을 컨테이너에서 제거한 다음 다시 사용할 수 있어야하며 전체 화면, 경계선없는 양식을 만들어야합니다.

private void OnGoFullScreenMode() 
{ 
    this.Controls.Remove(goLiveControl); 
    this.ShowFullScreen(goLiveControl); 
} 

private void ShowFullScreen(UserControl userControl) 
{ 
    Form fullScreenForm = new Form(); 
    fullScreenForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
    fullScreenForm.WindowState = FormWindowState.Maximized; 
    fullScreenForm.ShowInTaskbar = false; 
    userControl.Dock = DockStyle.Fill; 
    fullScreenForm.Controls.Add(userControl);    
    fullScreenForm.Show(); 
}