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
}
我记得 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
}