0

クロージング イベントを処理する最善の方法を理解しようとしています。

閉じたときに親にデータを返す可能性がある子を持つ複数のワークスペースを開いている場合、これは親が何かを処理する必要があることを意味する可能性があるため、閉じを停止してコントロールを親ワークスペースに戻す最善の方法を見つけようとしています。(別のワークスペースを開いて、基本的に親ワークスペースに対してモーダルなウィンドウを持つことができます。)

例: アドレス編集ウィンドウを呼び出すアカウント ワークスペースがあります。アドレス編集の途中で (アカウント ワークスペースをホストするウィンドウから) アプリを閉じます。ワークスペースを介してクロージングイベントステップがあり、モーダルウィンドウが開いていることが判明した場合、そのウィンドウワークスペースで canclose を実行します。

canclose が保存して閉じるように促し、保存せずに終了するか、閉じることをキャンセルするとします。保存されている場合、モーダル ワークスペースはアドレスをアカウント ワークスペースに送り返し、そこで処理されます。これは通常、この新しいデータをアカウントワークスペースに関連して調べ、場合によってはそこに保存する必要があるため、クローズを続行しないことにつながります。アカウントのワークスペースにフォーカスを移したいのですが、開始された canclose が誤ったリターンを取得するようにしたいと考えています。

イベントとしてワークスペースにフォーカスし、呼び出し元の canclose に false を返すだけですか?

canclose などのプロセスを実行しているときにシーケンスごとに何が起こるかについて混乱しており、イベントを要求したコードに関連してイベント コードが実際にいつ実行されるかについてイベントを発生させます。

4

1 に答える 1

0

独自のメカニズムを使用する (そしておそらく車輪を再発明する) 代わりに、まずネイティブのFormClosingイベントを検討してください。そこで、クローズをキャンセルするか、 CloseReasonをカスケードされていないカスタム値にオーバーライドして、より詳細なアクション ツリーを作成できます。

于 2012-11-14T20:22:48.950 に答える