黑马程序员技术交流社区

标题: DialogResult [打印本页]

作者: qsq0000hm    时间: 2014-7-13 23:06
标题: DialogResult
本帖最后由 qsq0000hm 于 2014-7-16 21:32 编辑

看杨老师的WPF视频,有一个练习是这样的,新建一个窗口Mywindow,定义3个button, content分别是,确定,取消和重试。
主窗口定义一个按钮,点击弹出新窗口Mywindow,点击新窗口上的三个按钮,关闭新窗口,并且弹出一个对话框messagebox.show("你点了哪个按钮");
主窗口button的click事件中的代码:
Mywindow Mwd = new Mywindow();
Mwd.ShowDialog();
if (Mwd.DialogResult == true)
            {
                MessageBox.Show("你点了确定按钮");
            }
            else if (Mwd.DialogResult == false)
            {
                MessageBox.Show("你点了取消按钮");
            }
            else if(Mwd.DialogResult == null)
            {
                MessageBox.Show("你点了重试按钮");
            }
新窗口中点击三个按钮代码:
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {


            DialogResult = true;  //只要对 DialogResult进行 赋值,则窗口关闭,针对使用shouDialog()方法打开的窗口。

        }

        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {


            DialogResult = false;
        }

        private void btnLaster_Click(object sender, RoutedEventArgs e)
        {


            DialogResult = null;

        }


只有dialogresult=null,不能判断重试按钮。是不能dialogresult=null,还是Mwd.DialogResult == null这个条件不能这么写?
还是其他什么原因?


作者: qsq0000hm    时间: 2014-7-13 23:20
定义一个枚举类型 这个是可以的。只是视频里要求写两种方法来做。
作者: 绿箭    时间: 2014-7-14 08:41
我懂了,每一个窗口实例都有一个DialogResult枚举,你在弹出的窗口里是可以给DialogResult直接赋值,因为弹出窗口自生的实例含有DialogResult枚举,而在主窗口要获得子窗口的DialogResult枚举,就要用子窗口的实例对象调用才行,所以才用MDI.DialogResult




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2