C#:关闭和打开从单独的形式两种形式(C#: Close and Open two forms fr

2019-10-18 11:28发布

我有3种形式。 我怎样才能让这个一个形式被显示为.Show(),另一种是由一个独立的形式隐藏着.Hide()?

这是我的代码部分

    private void buttonYes_Click(object sender, EventArgs e)
    {
        LoggedIn loggedinform = new LoggedIn();
        loggedinform.Hide(); // Hides another form that is in the background
        MainForm mainform = new MainForm();
        mainform.Show(); // Show first form
        this.Hide(); // Hides current form
    }

一个问题,的loggedIn形式不隐藏自身。 从它会跳过它,只是看起来无二mainform.Show();

这是一个错误还是我需要做点别的?

Answer 1:

该生产线LoggedIn loggedinform = new LoggedIn()是要创建一个登录窗口的新实例。 比如说,如果你打算展示5“登录”窗口屏幕一下子这可能是有用的。 我想你想要做的是检索到已经显示的登录窗口中的引用和隐藏; 因此,避免创建一个新的。

正确传递引用程序围绕现有的对象是怎样的一个结构性问题,而一个我在我早期的编程天碰到了不少。 快速,洁净,一般不推荐的方法是宣布这些奇异的物体(比如,也许,你的登录窗口),作为实例static ,这样他们就可以在任何地方进行检索。 不过,要完全回答的最佳方式你的问题,也许你可以描述你的程序多一点的结构(完整的代码是没有必要的,只是一般讲,流量是什么类之间)



Answer 2:

好吧,我想通了。 我可以用

        Application.OpenForms[1].Hide();

[1]是我试图隐藏窗体。 和它的工作。

我也意识到由于武士刀,这是有道理的,为什么它不工作,因为它基本上使窗体的一个新实例,而不是寻找当前之一。 对不起,我的代码是一个烂摊子。



文章来源: C#: Close and Open two forms from a separate form
标签: c# forms hide show