Porady: obsługa międzyoperacyjności w modelu COM za pomocą wyświetlania formularzy systemu Windows przy użyciu metody ShowDialog
Problemy ze współdziałaniem modelu obiektów składników (COM) można rozwiązać, wyświetlając formularz systemu Windows w pętli komunikatów programu .NET Framework, która jest tworzona Application.Run przy użyciu metody .
Aby formularz działał poprawnie z poziomu aplikacji klienckiej COM, należy uruchomić go w pętli komunikatów windows Forms. W tym celu należy użyć jednej z następujących metod:
Form.ShowDialog Użyj metody , aby wyświetlić formularz systemu Windows;
Wyświetl każdy formularz systemu Windows w osobnym wątku. Aby uzyskać więcej informacji, zobacz How to: Support COM Interop by Displaying Each Windows Form on its own Thread (Instrukcje: obsługa międzyoperajności modelu COM przez wyświetlanie każdego formularza systemu Windows we własnym wątku).
Procedura
Form.ShowDialog Użycie metody może być najprostszym sposobem wyświetlania formularza w pętli komunikatów programu .NET Framework, ponieważ we wszystkich podejściach wymagany jest najmniej kod do zaimplementowania.
Metoda Form.ShowDialog zawiesza pętlę komunikatów niezarządzanej aplikacji i wyświetla formularz jako okno dialogowe. Ponieważ pętla komunikatów aplikacji hosta została zawieszona, Form.ShowDialog metoda tworzy nową pętlę komunikatów programu .NET Framework w celu przetwarzania komunikatów formularza.
Wadą Form.ShowDialog użycia metody jest to, że formularz zostanie otwarty jako modalne okno dialogowe. To zachowanie blokuje dowolny interfejs użytkownika w aplikacji wywołującej, gdy formularz systemu Windows jest otwarty. Gdy użytkownik zakończy formularz, pętla komunikatów programu .NET Framework zostanie zamknięta, a wcześniejsza pętla komunikatów aplikacji ponownie zacznie działać.
Bibliotekę klas można utworzyć w formularzach systemu Windows, która zawiera metodę wyświetlania formularza, a następnie skompilować bibliotekę klas dla międzyoperajności modelu COM. Możesz użyć tego pliku DLL z klas Visual Basic 6.0 lub Microsoft Foundation (MFC), a z dowolnego z tych środowisk można wywołać metodę Form.ShowDialog w celu wyświetlenia formularza.
Aby obsługiwać współdziałanie modelu COM, wyświetlając formularz systemu Windows za pomocą metody ShowDialog
- Zastąp wszystkie wywołania Form.Show metody wywołaniami metody w składniku Form.ShowDialog .NET Framework.
Zobacz też
.NET Desktop feedback