Winforms 为什么Dialogresult为零?

Winforms 为什么Dialogresult为零?,winforms,null,delphi-prism,oxygene,dialogresult,Winforms,Null,Delphi Prism,Oxygene,Dialogresult,这以前从未发生在我身上 我在uses子句下有System.Windows.Forms命名空间,并且我能够使用DialogResult的属性。请看下面的代码。这就是我程序中的问题所在 if (thewinform.ShowDialog=DialogResult.OK) then 我调试了它,winform对话框打开了。单击OK按钮并返回检查DialogResult后,它将跳过if代码块。这时,我注意到DialogResult实际上是NIL 我以前从未遇到过这样的事情 有什么想法吗?谢谢,我找到了

这以前从未发生在我身上

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

if (thewinform.ShowDialog=DialogResult.OK) then
我调试了它,winform对话框打开了。单击OK按钮并返回检查DialogResult后,它将跳过if代码块。这时,我注意到DialogResult实际上是NIL

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


有什么想法吗?谢谢,我找到了我问题的答案

如果希望将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问题非常相似

这是VB还是C#,还是delphi,正如您的标签所示?@DanPuzey“delphi Prism是Microsoft.NET Framework和Mono的快速应用程序开发工具”。另外,
=
应该把Delphi送掉。我很幸运,在我的整个职业生涯中都没有使用Delphi(到目前为止,触摸木头等),所以
是一个好奇心,而不是一个路标:)一个
=
可能是VB,也可能是糟糕的C。@DanPuzey:是的,这就是我被否决的原因。人们希望每个人都了解和思考Delphi,即使这种语言已经濒临死亡。@Neolisk,我知道你的意思。我以前在Stackoverflow上问过一个愚蠢的问题,所以被否决了。这是远离Delphi的另一个原因。但恭喜你的发现+1(仅在VB.NET中测试-无此类问题)