以前从未发生过这件事。
我在uses子句下有System.Windows.Forms命名空间,我可以使用DialogResult的属性。看下面的代码。这就是我的计划中存在问题的地方。
if (thewinform.ShowDialog=DialogResult.OK) then
我调试了它,对话框winform打开了。单击“确定”按钮并返回以检查DialogResult后,它会跳过if代码块。此时,我注意到DialogResult实际上是 NIL
我之前从未遇到过这样的事情。
有什么想法吗?谢谢,
答案 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?
非常相似