2011-01-20 4 views
0

사용자가 오프닝 폼에 일부 데이터를 입력하는 프로그램을 만들고 있습니다. 그것을 기반으로 다른 창이 열립니다. 전체적으로 나는 주기적으로 작업하는 4 명의 guis가 있습니다. 일련의 서로 다른 클릭 후에 하나의 양식에서 다른 양식으로 이동할 수 있습니다. Form1을 Form2를, form3.hide(), form4.show()오픈 폼에 대한 참조

어떻게하지 않고도 (일부는 많은 실행해야 쿼리를 가지고있는) 처음부터 양식의 일부를 다시로드 할 필요없이

나는 그것을 "제대로"할 수 있습니다 : D

감사

답변

1

여러 양식을 사용하는 대신 하나의 양식에서 UserControls를 사용할 수 있습니다. userControl1.BringToFront() 메서드를 호출하여 활성 컨트롤을 쉽게 전환 할 수 있습니다.

+0

+1 그저 가져 오기 대신 앞에 가져 오기 패널 또는 컨테이너 컨트롤을 가지고 심지어 어쩌면 양식 자체 및 컨트롤 컬렉션에서 이전 마법사 UserControl을 제거하고 새 것을 추가하십시오. 그것 ... 조금 깨끗해 ... –

0

당신은 항상 같은 순서로 표시하는 경우, 당신은 마법사 방식을 사용 할 수 있습니다 미래에 당신이 중간에 새로운 형태를 추가 할 경우, 그것은 또한 유용 또는 "가장자리"에서 일반적으로 마법사 응용 프로그램은 모든 양식에서 공유되는 모든 관련 데이터가있는 어딘가의 구조를 보유합니다. 희망이 도움이됩니다.

0

아니요. 왜 안돼 :

private static Form[] _forms = new Form[] { form1, form2, form3, form4 }; 
public static void ShowForm(Form form) { 
    foreach (Form f in _forms) { 
     if (f == form) 
      f.Show(); 
     else 
      f.Hide(); 
    } 
}