特定のプログラム(Autodesk Revit)用のアドインを作成しています。 このアドインの中で、私はユーザーにWinFormを表示しています。 winformのボタンを使用すると、ユーザーは一時的にメインアプリケーション(Autodesk Revit)に戻って選択を行い、終了するとWinFormに返送されます。ShowDialogの代わりにShowを使用している間にC#フリーズプロセス
Winフォームを初期化するとき、私は使用することができますいずれかForm.Show()
か、私は、ユーザーが選択を行うようにするフォームが適切な表示、フォーム上のボタンを使用することができますForm.Show()
を使用して希望の場合Form.ShowDialog()
を使用選択の前にthis.hide()
を使用して選択が完了し、選択プロセスの間にフォームを一時的に非表示にした後にthis.Show()
を使用してフォームに戻ることができます。
私はForm.ShowDialog()
を使用しています。フォームが適切に表示され、フォーム上のボタンを使用できますが、ダイアログの結果を待つ間にShowDialogがメインアプリケーションをフリーズするため、ユーザーは選択できません。
だから私はForm.ShowDialog()
の代わりにForm.Show()
と一緒に行きたいと思っています。
私がForm.Show()
を使用している場合、フォームはバックグラウンドまたは別のモニタに移動できます。メインアプリケーションはフリーズ状態ではないため、そのまま作業を続けることができますフォームがまだ開いていることを完全に忘れる。
実際にShow
を使用しているときに、私がShowDialog
を使用しているかのように、何らかの理由でメインアプリケーションをアイドリング/フリーズすることが可能かどうか疑問に思っていますか?別のスレッドを使用して
でも、ユーザーはWinformを最小化または閉じることができ、元のアプリケーションで作業を続けることができます。 –
もう一方のフォームを解体できないようにしますか? –
メインアプリケーションは基本的にホストで、メインアプリケーションが終了すると私のフォームは存在しません。だから私は(showdialogを使用するときに起こるように)メインをフリーズしたい。実際には.showを使用してコードでフリーズしたい。 – Dante1986