2014-01-07 1 views
0

단추를 클릭 할 때 다음 화면에 대한 새 대화 상자를 표시 할 필요없이 화면의 내용을 '바꾸는'방법이 있습니까? 예를 들어, 기본 화면은 부품 목록과 같은 깊이있는 화면으로 이어지는 버튼이있는 주 메뉴이며 현재 모든 옵션이 화면에 표시됩니다.C# 화면 변경

패널을 스태킹하는 영역에서 대형 시스템의 효율성은 얼마나됩니까? 적어도 30-40 개의 화면이 필요합니다.

편집 : 저는 학교에서이 프로젝트를 수행하고 Windows 7을 기본 패키지와 함께 사용하기 위해 Visual Studio 2010을 사용하고 있습니다.

+1

어떤 C# UI 기술을 사용하고 있습니까? 예 : WPF, 윈도우 8, Winforms, ASP.NET 등? –

답변

0

을 표시하려는 작업에 따라 숨길/다중 스택 패널과 쇼를 사용할 수 있습니다. 그런 다음 패널이있는 양식 하나를 가지고 새 양식을 작성하고 이전 양식을 숨기는 대신 양식에 제어 도구를로드 할 수 있습니다. 당신이 돌아가 필요할 때 다음 바로 panel.Controls로 다시로드 할 수 있도록하려면 또한 기존 컨트롤에 대한 참조를 유지할 수

... 
MyControlWasForm1 form1 = new MycontrolWasForm1(); // this is a user control 
panel1.Controls.Clear(); 
panel1.Controls.Add(form1); 
... 

: 같은 것을 할 Youcould. 메서드 외부에서 컨트롤을 참조하는 변수가없는 경우 컨트롤에서 제거하면 가비지 수집됩니다.

... 
//property on main Form 
public MyControlWasForm1 Form1 { get; set; } 
... 
//in method 
if(Form1 == null) Form1 = new MycontrolWasForm1(); // this is a user control 
panel1.Controls.Clear(); 
panel1.Controls.Add(Form1); 
... 
+0

이 작업을 시도했지만 폼을로드 할 때 ArgumentException이 발생합니다. PartsInventory parts = 새로운 PartsInventory(); pnlMain.Controls.Clear(); pnlMain.Controls.Add (parts); 세 번째는 나에게 인수 예외를 제공합니다. 폼을 다른 방식으로로드해야합니까, 아니면 폼의 컨트롤을이 새 패널에로드 할 수 있습니까? – user3169698

0

당신은 당신이 대신 각 화면에 대한 새 사용자 컨트롤을 만들 수 있습니다 각 화면에 대한 새로운 형태를 만드는