Partilhar via


Como: Suporte para 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:

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 para interoperabilidade COM, exibindo cada Windows Form em seu próprio segmento

Conceitos

Expondo.NET Framework para COM

Outros recursos

Formulários do Windows e Aplicativos Não Gerenciados