Condividi tramite


Procedura: Supportare l'interoperabilità COM visualizzando un Windows Form con il metodo ShowDialog

È possibile risolvere i problemi di interoperabilità COM (Component Object Model) visualizzando Windows Form in un ciclo di messaggi di .NET Framework, creato usando il metodo Application.Run.

Per fare in modo che un modulo funzioni correttamente da un'applicazione client COM, è necessario eseguirlo in un ciclo di messaggi di Windows Form. A tale scopo, usare uno degli approcci seguenti:

Procedimento

L'uso del metodo Form.ShowDialog può essere il modo più semplice per visualizzare un modulo in un ciclo di messaggi di .NET Framework perché, di tutti gli approcci, richiede il minor codice da implementare.

Il metodo Form.ShowDialog sospende il ciclo di messaggi dell'applicazione non gestita e visualizza il modulo come finestra di dialogo. Poiché il ciclo di messaggi dell'applicazione host è stato sospeso, il metodo Form.ShowDialog crea un nuovo ciclo di messaggi .NET Framework per elaborare i messaggi del modulo.

Lo svantaggio dell'uso del metodo Form.ShowDialog è che il modulo verrà aperto come finestra di dialogo modale. Questo comportamento blocca ogni interfaccia utente nell'applicazione chiamante mentre la finestra di Windows Form è aperta. Quando l'utente esce dal modulo, il ciclo di messaggi di .NET Framework si chiude e il ciclo di messaggi dell'applicazione precedente viene avviato di nuovo.

È possibile creare una libreria di classi in Windows Form con un metodo per visualizzare il modulo e quindi compilare la libreria di classi per l'interoperabilità COM. È possibile usare questo file DLL da Visual Basic 6.0 o Microsoft Foundation Classes (MFC) e da uno di questi ambienti è possibile chiamare il metodo Form.ShowDialog per visualizzare il modulo.

Per supportare l'interoperabilità COM visualizzando un Windows Form con il metodo ShowDialog

  • Sostituire tutte le chiamate al metodo Form.Show con chiamate al metodo Form.ShowDialog nel componente .NET Framework.

Vedere anche