2

这以前从未发生在我身上。

我在 uses 子句下确实有 System.Windows.Forms 命名空间,并且我能够使用 DialogResult 的属性。看看下面的代码。这就是我的程序中的问题所在。

if (thewinform.ShowDialog=DialogResult.OK) then

我确实对其进行了调试,并打开了对话框 winform。一旦我单击 OK 按钮并返回检查 DialogResult,它就会跳过 if 代码块。此时,我注意到 DialogResult 实际上是NIL

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

有任何想法吗?谢谢,

4

1 回答 1

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 问题非常相似,为什么 ShowDialog 总是返回 DialogResult.Cancel?

于 2012-10-23T15:39:14.437 回答