A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qsq0000hm 中级黑马   /  2014-7-13 23:06  /  1253 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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这个条件不能这么写?
还是其他什么原因?

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

2 个回复

倒序浏览
定义一个枚举类型 这个是可以的。只是视频里要求写两种方法来做。
回复 使用道具 举报
我懂了,每一个窗口实例都有一个DialogResult枚举,你在弹出的窗口里是可以给DialogResult直接赋值,因为弹出窗口自生的实例含有DialogResult枚举,而在主窗口要获得子窗口的DialogResult枚举,就要用子窗口的实例对象调用才行,所以才用MDI.DialogResult

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马