Como: Suporte interoperabilidade COM, exibindo um formulário do Windows com o método ShowDialog
Você pode resolver problemas de interoperabilidade do Component Object Model (COM) exibindo o Formulário do Windows em um loop de mensagem .NET Framework, que é criado usando o método Application.Run.
Para fazer um formulário funcionar corretamente de uma aplicativo cliente COM, você deve executá-lo em um loop de mensagem dos Formulários do Windows.Para fazer isso, use uma das seguintes abordagens:
Use o método Form.ShowDialog para exibir um Formulário do Windows.
Exiba cada Formulário do Windows em um thread separado.Para obter mais informações, consulte Como: Suporte interoperabilidade COM, exibindo cada Windows formulário em seu próprio thread.
Crie um loop de mensagens compartilhado em um novo thread no componente .NET Framework.Para obter mais informações, consulte Como: Oferecer suporte a interoperabilidade COM exibindo Windows Forms em um thread compartilhado.
Procedimento
Usanr o método Form.ShowDialog pode ser a maneira mais fácil de exibir um formulário em um loop de mensagem .NET Framework porque, de todas as abordagens, ele requer o mínimo de código para implementar.
O método Form.ShowDialog suspende o loop de mensagem do aplicativo não gerenciado e exibe o formulário como uma caixa de diálogo.Como o aplicativo host do loop de mensagem foi suspenso, o método Form.ShowDialog cria um novo loop de mensagens .NET Framework para processar mensagens do formulário.
A desvantagem de usar o método Form.ShowDialog é que o formulário será aberto como uma caixa de diálogo restrita (modal).Esse comportamento bloqueia qualquer interface do usuário (IU) no aplicativo que fez a chamada enquanto o Formulário do Windows estiver aberto.Quando o usuário sai do formulário, o loop de mensagem .NET Framework fecha e loop de mensagem do aplicativo anterior começa a ser executado novamente.
Você pode criar uma biblioteca de classes em Formulários do Windows que tem um método para mostrar o formulário e em seguida, criar a biblioteca de classes para interoperabilidade COM.Você pode usar este arquivo DLL da MFC (Microsoft Foundation Classes) ou Visual Basic 6.0 e de qualquer um desses ambientes você pode chamar o método Form.ShowDialog para exibir o formulário.
Como: Dar Suporte a Interoperabilidade COM exibindo um Formulário do Windows com o Método ShowDialog
- Substitua todas as chamadas para o método Form.Show com chamadas para o método Form.ShowDialog no seu componente .NET Framework.
Consulte também
Tarefas
Como: Suporte interoperabilidade COM, exibindo cada Windows formulário em seu próprio thread
Como: Oferecer suporte a interoperabilidade COM exibindo Windows Forms em um thread compartilhado
Conceitos
Expor o .NET Framework Components to COM