我正在使用命令进行对话。此命令必须关闭对话框并返回上一个表单,但它不能按预期工作。当我按下命令时,它会关闭对话框,但表单不会再返回。
我正在使用资源编辑器。状态机控制应用程序的导航。
命令逻辑中的代码是:
dialog.dispose();
StateMachine.back();
dispose()
是我必须用来关闭对话框的方法吗?
感谢阅读。
答案 0 :(得分:2)
请勿使用StateMachine.back()
dialog.dispose();
答案 1 :(得分:2)
正如Nirmal所说,处理对话框会转到上一个表单,所以当你对“back()”的调用按预期工作时,你对dispose()的调用打破了这个逻辑。
您可以覆盖正在显示的表单的postShow方法,并检测离开对话框的情况(只需在需要返回时打开标志),并在表单显示该条件时调用back方法。
答案 2 :(得分:2)
还有另一种解决方案:尝试使用您必须在protected void onShowCompleted()
中实施的Form
方法。并在boolean
中声明Form
变量(例如private boolean isDialogShown;
),然后in the constructor
Form
将该布尔变量设置为false
,就在打开Dialog
代码之前,将其值设置为true
。然后在protected void onShowCompleted()
测试的代码中如果为真,如果为真则将其设置为false并执行后退操作:backForm.showBack();