2011-07-11 7 views
1

私たちは、クロスアプリドメイン(同じプロセスで2つのアプリドメイン)を使用するこのアプリケーションを持っています。Windowsフォームを使用してモデル/ダイアログフォームを実装しますか?

は、我々はそれがさらに継続することができます前に、第二アプリケーションドメインからの結果を待つことになるダイアログ/モデルウィンドウを模倣する必要があります。 2番目のAppドメインはWPFフォームを読み込みます(1番目のアプリドメインはまだ.Net 2フォームにあります)。私たちは古いプラグインを壊さずに新しいWPFを活用できるように、このプラグインのアプローチを使用する必要があります。

2番目のアプリケーションドメインが完了したときにManualEventResetを使用してシングルを使用していますが、これはGUIをフリーズしているため、ダイアログ/モデルウィンドウを移動するとバックグラウンドが再描画されません。 Windows XPでのみ起こる(Windows 7が正常に動作します)

それはまだ、メッセージ自体を再描画することができますので、背景を通過することができますように、モデルウィンドウを実装する方法がある場合、私は思っていました。

答えて

1

普通のモーダルフォームを開いてすぐに隠れて、別のスレッドで希望のwinformsフォームを開くと...あなたの操作が完了するまで「デッドロック」することができます私たちの最後の手段だったことは

+0

あなたのUI ...あなたのロックされたスレッドが解放された後、モーダル状態を終了するには、close()を、あなたの隠されたフォームを呼び出す(あなたのUIスレッドへの呼び出し()の呼び出し)のメッセージ処理をブロック:)ましたこれよりも良い方法があるのだろうかと思っています。私は1つを作成し、win.ShowDialog()を行うときに多分...誰か他の人がより良い方法 –

+0

を思い付く場合、あなたは目に見えないWinフォームを作成する方法を知っているだろうお待ちしております、それは自動的にtrueに可視性を設定していません。 –

+0

@anvarbek ...トリックは、また、不透明度を試してみましたが、それも働いた空のメソッド – DarkSquirrel42

関連する問題