Compartilhar via


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:

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

Outros recursos

Formulários do Windows e Aplicativos Não Gerenciados