HOW TO:顯示 Windows Form 和 ShowDialog 方法以支援 COM Interop
更新:2007 年 11 月
您可以在 .NET Framework 訊息迴圈上顯示 Windows Form,藉此解決元件物件模型 (Component Object Model,COM) 的互通性問題,此訊息迴圈則是使用 Application.Run 方法建立而成。
為了讓表單能夠在 COM 用戶端應用程式中正確運作,您必須在 Windows Form 訊息迴圈上執行它。若要這麼做,請使用下列其中一種方法:
使用 Form.ShowDialog 方法以顯示 Windows Form
在個別的執行緒上顯示每一個 Windows Form。如需詳細資訊,請參閱 HOW TO:在自己的執行緒上顯示每個 Windows Form 以支援 COM Interop
在 .NET Framework 元件中的新執行緒上建立共用的訊息迴圈。如需詳細資訊,請參閱 HOW TO:在共用執行緒上顯示 Windows Form 以支援 COM Interop
程序
使用 Form.ShowDialog 方法可能是在 .NET Framework 訊息迴圈上顯示表單的一種最簡單的方式,因為在所有方法中,它所需實作的程式碼最少。
Form.ShowDialog 方法會暫止 Unmanaged 應用程式的訊息迴圈,並將表單顯示成對話方塊。因為主應用程式的訊息迴圈已經暫止,所以 Form.ShowDialog 方法會建立新的 .NET Framework 訊息迴圈以處理表單的訊息。
使用 Form.ShowDialog 方法的缺點是表單會被開啟為強制回應對話方塊。當 Windows Form 開啟時,這個行為會封鎖呼叫應用程式中的任何使用者介面 (UI)。當使用者結束表單時,.NET Framework 訊息迴圈便會關閉,而先前應用程式的訊息迴圈會再次開始執行。
您可以在 Windows Form 中建立類別庫,此類別庫具有顯示表單的方法,然後再建置用於 COM Interop 的類別庫。您可以在 Visual Basic 6.0 或 Microsoft Foundation Class (MFC) 中使用這個 DLL 檔,並且可以在這些環境中呼叫 Form.ShowDialog 方法以顯示表單。
若要使用 ShowDialog 方法來顯示 Windows Form 以支援 COM Interop
- 在 .NET Framework 元件中,使用對 Form.ShowDialog 方法的呼叫來取代對 Form.Show 方法的所有呼叫
請參閱
工作
HOW TO:在自己的執行緒上顯示每個 Windows Form 以支援 COM Interop
HOW TO:在共用執行緒上顯示 Windows Form 以支援 COM Interop