Partager via


How to: Support COM Interop by Displaying a Windows Form with the ShowDialog Method

Vous pouvez résoudre les problèmes d’interopérabilité COM (Component Object Model) en affichant votre Windows Form sur une boucle de message .NET Framework, créée à l’aide de la Application.Run méthode.

Pour qu’un formulaire fonctionne correctement à partir d’une application cliente COM, vous devez l’exécuter sur une boucle de messages Windows Forms. Pour cela, utilisez l'une des approches suivantes :

Procédure

L’utilisation de la Form.ShowDialog méthode peut être le moyen le plus simple d’afficher un formulaire sur une boucle de message .NET Framework, car, de toutes les approches, il nécessite le moins de code à implémenter.

La méthode Form.ShowDialog interrompt la boucle de messages de l’application non managée et affiche le formulaire comme une boîte de dialogue. Étant donné que la boucle de message de l’application hôte a été suspendue, la Form.ShowDialog méthode crée une boucle de message .NET Framework pour traiter les messages du formulaire.

L’inconvénient de l’utilisation de la méthode Form.ShowDialog est que le formulaire est ouvert comme boîte de dialogue modale. Ce comportement bloque toute interface utilisateur dans l’application appelante tant que le formulaire Windows est ouvert. Lorsque l’utilisateur quitte le formulaire, la boucle de message .NET Framework se ferme et la boucle de message de l’application précédente commence à s’exécuter à nouveau.

Vous pouvez créer une bibliothèque de classes dans Windows Forms qui a une méthode pour afficher le formulaire, puis créer la bibliothèque de classes pour COM interop. Vous pouvez utiliser ce fichier DLL depuis Visual Basic 6.0 ou Microsoft Foundation Classes (MFC) et, depuis ces deux environnements, vous pouvez appeler la méthode Form.ShowDialog pour afficher le formulaire.

Pour prendre en charge COM Interop en affichant un formulaire Windows avec la méthode ShowDialog

  • Remplacez tous les appels à la Form.Show méthode par des appels à la Form.ShowDialog méthode dans votre composant .NET Framework.

Voir aussi