当前位置:  开发笔记 > 开发工具 > 正文

如何让System.Windows.ShowDialog()返回'true'?

如何解决《如何让System.Windows.ShowDialog()返回'true'?》经验,为你挑选了3个好方法。

我怎样System.Windows.ShowDialog()才能返回"真实"?

我对此有点新意. System.Windows.ShowDialog的回归类型是bool?它应该返回true,当你打Submit,而false当你打Cancel.但我不知道如何指定哪个Button是官方提交按钮.

编辑:在相关的说明,我很好奇它如何返回null.



1> JMD..:

http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx

ShowDialog返回Nullable <(Of <(T>)>)布尔值,指定活动是被接受还是取消.返回值是窗口关闭之前DialogResult属性的值(请参阅DialogResult).

基本上,您可以通过设置DialogResult的值来决定,而不是通过按特定按钮 - 您可以决定按钮的功能.



2> Matt Hamilto..:

在WPF中,将Button.IsDefault属性设置为true以指定按钮是窗口的"提交"按钮.我不是百分百肯定这会使窗口关闭,而DialogResult为true.如果没有,你只需要处理它的Click事件:

this.DialogResult = true;

编辑

同样,您可以使用Button.IsCancel属性将按钮作为表单的"取消"按钮.

编辑2

我相信ShowDialog可以为空的原因是,因为它在表单提交或取消之前是空的,所以如果你在后台线程中观看对话框,你可以测试它.我没有尝试过,但这似乎是他们为该属性引入第三个"未知"(null)状态的合理原因.


不,将IsDefault设置为true不会导致按钮单击以关闭对话框,但IsCancel会.设置DialogResult将关闭对话框.设置为默认为true会导致在用户按Enter键时触发命令.

3> Nir..:

如果将DialogResult设置为true,则ShowDialog返回true,如果将DialogResult设置为false,如果关闭对话框而不设置DialogResult(用户单击右上角的红色X),ShowDialog将返回false,ShowDialog将返回null.

将IsDefault设置为true将导致按钮看起来略有不同,按Enter键将"单击"此按钮.

如果将IsCancel设置为true,则按下esc将"单击"此按钮.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有