2010-07-02 5 views
0

이것은 바보 같은 질문입니까? C# Visual Studio의 신비로운 세계를 탐색하려고합니다. 런타임에 어떤 시점에서 패널을 대체 할 수 있기를 원하지만 디자이너보기에는 양식의 단일 상태에 대한 정적보기 만 있습니다.Visual Studio에서 디자이너보기를 사용하여 둘 이상의 폼 상태를 디자인하는 방법?

예를 들어 button1 및 picturebox1과 함께 양식에 panel1이있을 수 있습니다. 그런 다음 사용자가 button1을 누르면 panel1이 panel2로 바뀝니다. Panel2에는 button2와 picturebox2가 있습니다.

저는 디자이너에서 panel1을 잘 만드는 법을 알고 있습니다. 디자이너를 사용하여 panel2를 만들 수있는 방법이 있습니까? 디자이너 만 사용하여 양식의 한 상태를 만들 수 있습니까? 그러면 다른 모든 상태를 직접 작성해야합니까?

답변

1

디자이너에서 양식의 여러 상태를 표시하는 방법을 모르겠습니다. 그러나 사용자가 원하는 것은 두 개의 다른 사용자 컨트롤입니다. 코드에서 두 개의 사용자 컨트롤 사이를 이동할 수있는 하나의 양식을 만드는 것이 좋습니다. 정확히 무엇을 요구했는지는 모르겠지만 이제는 디자이너 외부에서 다른 패널을 코딩 할 필요가 없습니다. 이것은 당신이해야합니다 것입니다 :

  1. 당신이 당신의 견해의 다른 레이아웃을 디자인 UserControlPanel1 및 UserControlPanel2.
  2. PanelLoaderForm 다른 사용자 컨트롤을로드 할 공간을 남겨 두십시오. 필요에 따라 코드를 구현하여 다양한 사용자 컨트롤을 표시 할 수 있습니다.

이 VB.NET는하지만 PanelLoaderForm의 코드는 다음과 같이 볼 수 있습니다 : 당신이 추가하기 전에 두 통화 Controls.Remove (oldControl) 또는 무언가 사이에 이동하려면 다음

Private Sub LoadUserControl() 
    If UsePanel1 Then 
     Controls.Add(new UserControlPanel1())   
    Else 
     Controls.Add(new UserControlPanel2())   
    End If 
End Sub 

을 새로운 것.

+0

죄송합니다. "두 사용자 컨트롤 간의 차이"는 무엇을 의미합니까? – lala

+0

나는 내 대답을 편집했다. 나는 그것이 내가 의미하는 바를 명확히하기를 희망한다. 더 자세한 설명이 필요하면 다시 오십시오. – MikaelHalen

1

저는 C# 폼 디자이너를 특별히 사용하지 않았지만 일반적으로 폼의 초기 상태를 디자인하고 코드에서 나머지 (모든 동적 변경) 작업을 수행합니다. 이제 panel2를 폼에 놓고 보이지 않게 할 수 있으며 button1을 눌렀을 때 패널의 가시성을 토글하는 것이 가능할 수도 있지만 이것이 가장 좋은 해결책은 아닙니다.

+0

정확히 양식의 큰 오버 헤드를 생성하기 때문에. 특히 많은 컨트롤이있는 경우 특히 유용합니다. – KroaX

관련 문제