1

我正在使用命令进行对话。此命令必须关闭对话框并返回到以前的表单,但它没有按预期工作。当我按下命令时,它会关闭对话框但表单不会返回。

我正在使用资源编辑器。状态机控制应用程序的导航。

命令逻辑内的代码是:

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

dispose()我必须用来关闭对话框的方法吗?

谢谢阅读。

4

3 回答 3

2

不要打电话StateMachine.back()只是使用dialog.dispose();

于 2011-08-23T10:36:08.460 回答
2

正如 Nirmal 所说,处理对话框会转到以前的表单,因此当您对“back()”的调用按预期工作时,您对 dispose() 的调用会破坏该逻辑。

您可以覆盖您正在显示的表单的 postShow 方法并检测离开对话框的情况(当您需要返回时只需打开一个标志)并在表单以该条件显示时调用 back 方法。

于 2011-08-24T18:49:25.497 回答
2

还有另一种解决方案:尝试使用protected void onShowCompleted()您必须在Form. 并在您的(例如)中声明一个boolean变量,然后将该布尔变量设置为,并在打开设置的代码之前将其值设置为。然后在测试代码中是否为真,如果为真则将其设置为假并执行后退操作:Formprivate boolean isDialogShown;in the constructorFormfalseDialogtrueprotected void onShowCompleted()backForm.showBack();

于 2011-10-25T15:21:01.850 回答