Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c正确的表格关闭检查并重新打开_C#_Wpf_Forms - Fatal编程技术网

C# c正确的表格关闭检查并重新打开

C# c正确的表格关闭检查并重新打开,c#,wpf,forms,C#,Wpf,Forms,我对C WPF有点陌生。在下面的代码中,我如何正确地检查表单关闭/最小化后,表单对象是否可以重用。我想做的是,当窗体关闭时,使用相同的对象将其打开?有点奇怪,在将其设为null并声明对象之后,它也不工作了 private static SumByJournal sbj = null; public static void ShowSumByJournal() { if (sbj == null) { MessageBox.

我对C WPF有点陌生。在下面的代码中,我如何正确地检查表单关闭/最小化后,表单对象是否可以重用。我想做的是,当窗体关闭时,使用相同的对象将其打开?有点奇怪,在将其设为null并声明对象之后,它也不工作了

private static SumByJournal sbj = null;    

public static void ShowSumByJournal()
    {
        if (sbj == null)
        {
            MessageBox.Show("null object");
            sbj = new SumByJournal();
            sbj.Activate();
            sbj.ShowDialog();
        }
        else
        {
            if (sbj.IsActive == true)
            {
                MessageBox.Show("active bro");
            }
            else
            {
                sbj.Activate();
                if (sbj.IsActive == true)
                {
                    MessageBox.Show("active test");
                }
                else
                {
                    MessageBox.Show("still not active");
                }
            }
            if (sbj.IsVisible == true)
            {
                MessageBox.Show("visible bro");
            }
            else
            {
                sbj.ShowDialog();
                sbj.Show();
                if (sbj.IsVisible == true)
                {
                    MessageBox.Show("visible test");
                }
                else
                {
                    MessageBox.Show("no visisable also.");
                }

            }
            if (sbj.IsInitialized == true)
            {
                MessageBox.Show("initlize");
            }

            sbj.ShowDialog();

            // so force it to null;
            sbj = null;
            sbj = new SumByJournal();
            sbj.Activate();
            sbj.ShowDialog();
            // still does not show ?? 
        }

    }

请澄清一下。我们在这个问题上有点不知所措。当我运行上面的代码时。。它仍然没有激活。但是上面的代码不是WPF的常规做法,但是您可以发布一个可以复制相同的工作示例吗?由于上面的代码丢失了许多位SumByJournal等。我可能无法复制相同的位。对我来说,代码看起来像是从Winforms派生的。同时调用ShowDialog之前激活和ShowDialog之后显示看起来也有点不寻常。我使用给定的任何属性。之前我测试过winform,它有dispose检查功能。我使用showdialog而不是.show,因为焦点问题是Microsoft Excel插件。