Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode resolver problemas de interoperabilidade do COM (Component Object Model) exibindo seu Windows Form em um loop de mensagem do .NET Framework, que é criado usando o método Application.Run.
Para fazer um formulário funcionar corretamente a partir de um aplicativo cliente COM, você deve executá-lo em um loop de mensagem do Windows Forms. Para fazer isso, use uma das seguintes abordagens:
Use o método Form.ShowDialog para exibir o Windows Form;
Exiba cada Windows Form em um thread separado. Para obter mais informações, consulte Como oferecer suporte à interoperabilidade COM exibindo cada formulário do Windows em seu próprio thread.
Procedimento
Usar o método Form.ShowDialog 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 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 loop de mensagem do aplicativo host foi suspenso, o método Form.ShowDialog cria um novo loop de mensagem do .NET Framework para processar as 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 modal. Esse comportamento bloqueia qualquer interface do usuário (UI) no 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 no Windows Forms que tem um método para mostrar o formulário e, em seguida, criar 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 Form.ShowDialog para exibir o formulário.
Para dar suporte à interoperabilidade COM exibindo um formulário do Windows com o método ShowDialog
- Substitua todas as chamadas para o método Form.Show por chamadas para o método Form.ShowDialog no componente .NET Framework.
Ver também
.NET Desktop feedback