黑马程序员技术交流社区
标题:
WPF中DialogResult和Close()
[打印本页]
作者:
刘赛
时间:
2013-5-4 10:06
标题:
WPF中DialogResult和Close()
当窗口用ShowDialog()打开时 给DialogResult赋值就会关闭窗口使用Close() 也能关闭窗口。2者
什么区别?
作者:
张伟86
时间:
2013-5-4 14:05
本帖最后由 张伟86 于 2013-5-4 15:01 编辑
1、首先,调用ShowDialog()函数后,它所对应创建的Dialog框体在执行结束时就会自动调用自身Close()函数进行对话框销毁操作。
2、如果给ShowDialog()赋值,仍然是被创建的Dialog调用自身Close()函数关闭窗口。
3、两者不同的是,为ShowDialog()赋值,可以获取Dialog在调用时的按钮操作结果,帮助我们判断下一步该做什么事情。
4、ShowDialog()的其他用法和Winform下状态都是一样的,唯一不一样的就是
WPF里DialogResult的类型是bool?,也就是Nullable<bool>,而不是winform里那个枚举。
bool?已经可以表示三种返回状态了——true、false、null。根据这3种状态可以
有效
帮助我们判断下一步该做什么事情。
例如 :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Win32;
namespace WpfApplication1
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
bool? result = openFileDialog1.ShowDialog();
if (result == true)
{
MessageBox.Show("true");
}
else if (result == false)
{
MessageBox.Show("CANCEL");
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2