为什么Dialogresult没有?

时间:2012-10-23 14:34:23

标签: winforms null delphi-prism oxygene dialogresult

以前从未发生过这件事。

我在uses子句下有System.Windows.Forms命名空间,我可以使用DialogResult的属性。看下面的代码。这就是我的计划中存在问题的地方。

if (thewinform.ShowDialog=DialogResult.OK) then

我调试了它,对话框winform打开了。单击“确定”按钮并返回以检查DialogResult后,它会跳过if代码块。此时,我注意到DialogResult实际上是 NIL

我之前从未遇到过这样的事情。

有什么想法吗?谢谢,

1 个答案:

答案 0 :(得分:3)

我找到了问题的答案。

当你想纯粹使用winform作为对话框时,你就不能有FormClosing事件。

对于我的thewinform,我意外地创建了它的FormClosing事件并忘了它。

method thewinform.thewinform_FormClosing(sender: System.Object; e: System.Windows.Forms.FormClosingEventArgs);
begin
    e.Cancel := true;
    hide;  
end;

删除此winform事件后,ShowDialog和DialogResult的行为与预期一致。

这与另一个stackoverflow问题Why does ShowDialog always return DialogResult.Cancel?

非常相似