C# 在像 MSN 一样的表单内的表单之间切换

C# switch between forms inside a form like in MSN

我记得 MSN Messenger 曾经显示登录信息。登录后,它显示加载动画。成功后,它会显示您的所有联系人。所有这些都集中在一个表格中。

这是怎么做到的?

我不仅会制作新表格,也不会在表格中显示表格。但事实并非如此,对吧?


我乐于接受有关如何改进我的问题的建议。我知道我几乎无法解释自己。也许在你的帮助下,我可以编辑我的问题以对其他人更有帮助

您可以使用 UserControl 对象。您可以将它们停靠到主窗体中的面板。

本例在主窗体中使用了一个Panel对象进行对接(命名为pnlCentre)

public partial class MainForm : Form
{
    DummyControl1 dummy1;
    DummyControl2 dummy2;

    public MainForm()
    {
        InitializeComponent();


        dummy1 = new DummyControl1();
        dummy2 = new DummyControl2();

        pnlCentre.Controls.Add(dummy1);
        pnlCentre.Dock = DockStyle.Fill;
    }
    // switches between screens
    public void switchscreen()
    {
        pnlCentre.Controls.Remove(dummy1);
        pnlCentre.Controls.Add(dummy2);
        pnlCentre.Dock = DockStyle.Fill;

    }

}

public partial class DummyControl1 : UserControl
{
    // can be filled from the designer
}

public partial class DummyControl2 : UserControl
{
    // can be filled from the designer
}