2012-03-22 2 views
0

vb.net에서 WPF 프로젝트를 개발 중이고 여러 개의 창이 있습니다. 사용자가 메뉴 항목을 선택하면 새 창이 열리고 사용자가 다른 메뉴 항목을 클릭 할 때 현재 창이 자동으로 닫힙니다. 어떻게하면됩니까? 감사합니다.한 번에 하나의 창만 WPF에서 열어야합니까?

+0

글쎄, 내가 프로그래밍에 아주 새로운 오전. 나는 이런 식으로 시도했다. Dim win3 New Window3, win3.Show() – WPFcitizen

+0

문제 없습니다. 메소드 외부에 'Dim win3 As New Window3'을 둡니다. 동일한 클래스 내의 모든 메서드에서 'win3.Show()'및 'win3.Close()'를 호출 할 수 있습니다. Dim 앞에 public을 넣고 다른 클래스를 통해 사용할 수 있습니다. 모든 윈도우의 코드 숨김 내에서 'Me.Close()'를 호출 할 수 있습니다. – Silvermind

답변

1

난 당신이 당신의 의견에 따라 의미 생각 :

Class MainWindow 

    Public Win3 As Window3 = New Window3() 

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click 
    Win3.Show() 
    Me.Close() 
    End Sub 

End Class 
+0

고마워. 효과가있었습니다. 문제는 창을 명시 적으로 닫아야한다는 것입니다. 나는 이것을하고 싶지 않다. 다른 창을 클릭하면 현재 열려있는 창이 닫힙니다. 감사! – WPFcitizen

0

이 작업을 수행하는 방법에는 두 가지가 있습니다

메뉴 항목은 이미/표시 작성하면되는 경우를 확인하는 대신 새의 부르는, 서브 루틴을 만드는 형태로 다음 같은 양식을 공유하는 경우 열리지 않습니다 (이미 가지고 계신대로). 열려있는 경우 새 정보로 다시로드하십시오.

그렇지 않으면 새로운 형태 (C#으로 this 웹 사이트에서 아래 그림 참조) 오픈 형태 불구하고 이동 열기 전에 :

는 이름의 경우 각 양식 검사에 대한
FormCollection fc = Application.OpenForms; 

foreach (Form frm in fc) { 
     //iterate through 
} 

메뉴 항목 중 하나를 그리고 경우에 동일 그것을 닫습니다 (필요한 경우 저장 후). 그런 다음 for 루프를 종료 한 후 새 메뉴 항목을 엽니 다.

+1

그는 WPF에 대해 묻습니다 : – Silvermind

+0

아. 감사합니다. 나는 오해했다 : – Kyra

관련 문제