2013-05-16 7 views
5

Utworzyłem aplikację WPF i WinForm, co muszę zrobić, to otworzyć WinForm z aplikacji WPF. Oba są w tym samym rozwiązaniu, ale są to różne projekty.Otwórz WinForm z aplikacji WPF?

Próbowałem następujące:

Dim newWinForm as New MainWindow 
newWinForm.show() 

Znalazłem możliwe rozwiązanie tutaj: Opening winform from wpf application programmatically

Ale ja nie rozumiem, co dokładnie mam zrobić. Mam nadzieję, że możesz mi pomóc. Dzięki!

+0

a 'Process.Start (" Winform.exe ");' może być alternatywną metodą ... –

+0

Tak, zrobiłem to również, ale aplikacja WPF jest formularzem logowania, więc nie sądzę, że jest to dobry wybór. Dzięki! –

Odpowiedz

6

Generalnie trzeba zorganizować swoją formę w WindowInteropHelper, jak idąc w oknie WPF Button.Click obsługi zdarzenia:

C#:

private void button1_Click(object sender, RoutedEventArgs e) { 
    Form1 form = new Form1(); 
    WindowInteropHelper wih = new WindowInteropHelper(this); 
    wih.Owner = form.Handle; 
    form.ShowDialog(); 
} 

VB:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click 
    Dim form As New Form1() 
    Dim wih As New WindowInteropHelper(Me) 
    wih.Owner = Form.Handle 
    form.ShowDialog() 
End Sub 

Oczywiście musisz dodać odniesienie/import swojego projektu i System.Windows.Forms.dll

+0

Cześć teraz gdy aplikacja WinForm zaczyna on trows wyjątek w linię: Dim CONEXION jak New SqlConnection (. ConfigurationManager.ConnectionStrings („”) CONN ConnectionString) odwołanie do obiektu nie jest ustawiony na przykład obiektu To zmienna instancji. Pozdrowienia! –

+0

Oznacza to tylko, że coś w kodzie ma wartość zerową lub nic. Być może dlatego, że przegapiłeś trochę kodu init, aby zbudować ciąg połączenia lub itp. Mój przykładowy kod nie utworzył nowego procesu, więc twoja aplikacja WinForm nigdy się nie uruchamia. Jeśli chcesz rozpocząć nowy proces, wypróbuj komentarz @Jeremy Thompsona 'Process.Start (" Winform.exe ");' – terry

+0

Po prostu działa, ale teraz mam ten problem: Gdy nowy WinForm został renderowane, kontrolki wyglądają jak aplikacja Win98, stary wygląd i styl. Pozdrowienia! Im na W7 –

Powiązane problemy