Nasıl yapılır: ShowDialog Yöntemi ile bir Windows Formunu Görüntüleyerek COM Birlikte Çalışmasını Destekleme
Bileşen Nesne Modeli (COM) birlikte çalışabilirlik sorunlarını çözmek için Windows Formunuzu yöntemi kullanılarak oluşturulan bir .NET Framework ileti döngüsünde Application.Run görüntüleyerek çözebilirsiniz.
Bir formun COM istemci uygulamasından doğru şekilde çalışması için formu bir Windows Forms ileti döngüsünde çalıştırmanız gerekir. Bunu yapmak için aşağıdaki yaklaşımlardan birini kullanın:
form Form.ShowDialog formlarını görüntülemek için Windows kullanın;
Her bir Windows Form'ları ayrı bir iş parçacığında görüntüler. Daha fazla bilgi için, bkz. How to: Support COM Interop by Displaying Each Windows Form on Its Own Thread.
Yordam
Yöntemin kullanımı, tüm yaklaşımlar nedeniyle en az kodun uygulanmasına ihtiyaç .NET Framework bir ileti döngüsünde form görüntülemenin en Form.ShowDialog kolay yolu olabilir.
yöntemi, Form.ShowDialog unmanaged uygulamanın ileti döngülerini askıya alır ve formu bir iletişim kutusu olarak görüntüler. Konak uygulamanın ileti döngüsü askıya alınarak yöntemi, formun iletilerini .NET Framework için yeni bir ileti Form.ShowDialog döngüsü oluşturur.
yöntemini kullanmanın Form.ShowDialog dezavantajı, formun kalıcı iletişim kutusu olarak açılmasıdır. Bu davranış, Windows Form açıkken çağıran uygulamanın kullanıcı arabirimini (UI) engeller. Kullanıcı forma çıkış yaptığında, .NET Framework ileti döngüsü kapanır ve önceki uygulamanın ileti döngüsü yeniden çalışmaya başlar.
Windows Forms'da formu göstermek için bir yöntemi olan bir sınıf kitaplığı oluşturabilir ve ardından COM birlikte çalışma için sınıf kitaplığını oluşturabilirsiniz. Bu DLL dosyasını Visual Basic 6.0 veya Microsoft Foundation Sınıfları (MFC) ile kullanabilir ve bu ortamlardan herhangi birini kullanarak formu görüntülemek için Form.ShowDialog yöntemini çağırabilirsiniz.
ShowDialog yöntemiyle bir Windows formu görüntüleyerek COM birlikte çalışabilirliği desteklemek için
- yöntemine yapılan tüm Form.Show çağrıları, uygulama bileşeninizin Form.ShowDialog yöntemine yapılan .NET Framework değiştirin.