1

コマンドでダイアログを作成しています。このコマンドはダイアログを閉じて前のフォームに戻る必要がありますが、期待どおりに機能していません。コマンドを押すと、ダイアログは閉じますが、フォームは戻りません。

リソースエディタを使用しています。ステートマシンはアプリのナビゲーションを制御します。

コマンドのロジック内のコードは次のとおりです。

dialog.dispose();
StateMachine.back();

dispose()ダイアログを閉じるために使用する必要がある方法はありますか?

読んでくれてありがとう。

4

3 に答える 3

2

別の解決策があります:にprotected void onShowCompleted()実装する必要のあるメソッドを使用してみてくださいFormbooleanそして、あなたのForm(たとえばprivate boolean isDialogShown;)で変数を宣言し、次にそのブール変数をin the constructorに設定し、その値をに設定するを開くコードの直前に宣言します。次に、テストのコードで、それがtrueであるかどうか、およびtrueである場合は、falseに設定して、戻るアクションを実行します。FormfalseDialogtrueprotected void onShowCompleted()backForm.showBack();

于 2011-10-25T15:21:01.850 に答える
2

ニーマルが言ったように、ダイアログを破棄すると前のフォームに移動するため、「back()」への呼び出しは期待どおりに機能しますが、dispose() への呼び出しはそのロジックを壊します。

表示しているフォームの postShow メソッドをオーバーライドし、ダイアログを離れるケースを検出し (戻る必要がある場合はフラグをオンにするだけです)、その状態でフォームが表示されたときに back メソッドを呼び出すことができます。

于 2011-08-24T18:49:25.497 に答える
2

呼び出すStateMachine.back()だけで使用しないでくださいdialog.dispose();

于 2011-08-23T10:36:08.460 に答える