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