我如何获得System.Windows.ShowDialog()
返回'true'?如何获得System.Windows.ShowDialog()返回'true'?
我对此有点新。 System.Windows.ShowDialog
的退货类型是bool
?它应该返回true
当你打Submit
,并且false
当你打Cancel
。但我不知道如何指定哪个Button
是官方提交按钮。
编辑: 在一个相关的说明,我很好奇,怎么能返回null。
我如何获得System.Windows.ShowDialog()
返回'true'?如何获得System.Windows.ShowDialog()返回'true'?
我对此有点新。 System.Windows.ShowDialog
的退货类型是bool
?它应该返回true
当你打Submit
,并且false
当你打Cancel
。但我不知道如何指定哪个Button
是官方提交按钮。
编辑: 在一个相关的说明,我很好奇,怎么能返回null。
http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx
ShowDialog的返回一个可空<(中 <(T>)>)布尔值,指定 活性是否被接受或 取消。返回值是之前窗口关闭DialogResult属性 的 值(见 的DialogResult)。
基本上,您可以通过设置DialogResult的值来决定,而不是通过点击某个按钮来决定 - 您决定按钮的功能。
在WPF中,Button.IsDefault属性设置为true以指定一个按钮是一个窗口中的“提交”按钮。我不能100%确定这会使窗口关闭,DialogResult为true。如果没有,你只需要处理正是如此它的Click事件:
this.DialogResult = true;
编辑
同样,你可以使用Button.IsCancel属性有一个按钮是“取消”按钮,以便形成。
编辑2
我相信原因ShowDialog的为空是因为直到形式提交或取消它为空,你可以测试,如果你是看在后台线程的对话框。我还没有尝试过,但它似乎是为什么他们会向属性引入第三个“未知”(空)状态的逻辑原因。
不,将IsDefault设置为true将不会导致按钮单击关闭对话框,但IsCancel将会设置DialogResult将关闭对话框设置Is默认为true将导致命令被触发,如果用户点击回车键。 – 2012-06-27 21:11:04
如果将DialogResult设置为true ShowDialog返回true,如果将DialogResult设置为false ShowDialog返回false如果没有设置DialogResult(用户单击右上角的红色X),则关闭对话框ShowDialog将返回null。
设置ISDEFAULT为true,将导致按钮看起来有点不同,并按下Enter键将“点击”这个按钮。
如果设置IsCancel为true,按下ESC键将“点击”这个按钮。
我很抱歉,如果这是多余的或太明显,但你应该设置布尔?在调用对话框内的Close()方法之前的DialogResult值。如果不这样做,将导致引发InvalidOperationException异常,并将Exception.Message属性设置为“只有在创建窗口并显示为对话框后才能设置DialogResult。“ – ClockEndGooner 2016-07-29 01:13:50
如果我有这个错误,你将不得不原谅我,因为我做了WinForms已经有好几年了,但我想,是的,你会设置DialogResult _(例如,在Button的OnClick处理程序中,但它 – JMD 2016-07-29 14:52:47