Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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, utworzonej przy użyciu metody Application.Run.
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.
W celu wsparcia współdziałania modelu COM, wyświetlając formularz Windows za pomocą metody ShowDialog
- Zastąp wszystkie wywołania metody Form.Show wywołaniami metody Form.ShowDialog w składniku .NET Framework.
Zobacz także
.NET Desktop feedback