Compartilhar via


Como dar suporte à interoperabilidade COM exibindo um Formulário do Windows com o método ShowDialog

Você pode resolver problemas de interoperabilidade do COM (Component Object Model) exibindo o Windows Form em um loop de mensagem do .NET Framework, que é criado usando o Application.Run método.

Para fazer um formulário funcionar corretamente em um aplicativo cliente COM, você deve executá-lo em um loop de mensagem do Windows Forms. Para fazer isso, use uma das abordagens a seguir:

Procedimento

Usar o método pode ser a maneira mais fácil de exibir um formulário em um loop de mensagem do .NET Framework porque, de todas as abordagens, ele requer o Form.ShowDialog mínimo de código para implementar.

O Form.ShowDialog método suspende o loop de mensagem do aplicativo não gerenciado e exibe o formulário como uma caixa de diálogo. Como o loop de mensagem do aplicativo host foi suspenso, o Form.ShowDialog método cria um novo loop de mensagem do .NET Framework para processar as mensagens do formulário.

A desvantagem de usar o método é que o Form.ShowDialog formulário será aberto como uma caixa de diálogo modal. Esse comportamento bloqueia qualquer interface do usuário (IU) do aplicativo de chamada enquanto o Windows Form está aberto. Quando o usuário sai do formulário, o loop de mensagem do .NET Framework é fechado e o loop de mensagem do aplicativo anterior começa a ser executado novamente.

Você pode criar uma biblioteca de classes do Windows Forms que tem um método para mostrar o formulário e, em seguida, compilar a biblioteca de classes para interoperabilidade COM. Você pode usar esse arquivo DLL do Visual Basic 6.0 ou Microsoft Foundation Classes (MFC) e de qualquer um desses ambientes você pode chamar o método para exibir o Form.ShowDialog formulário.

Dar suporte à interoperabilidade COM exibindo um formulário do Windows com o método ShowDialog

  • Substitua todas as chamadas para o método com chamadas para o Form.ShowForm.ShowDialog método no componente .NET Framework.

Confira também