首先 - 我建议您使用User Controls,这些应该被用作其他控件的可重用容器。 Forms应该表示窗口。因此,将窗体用作另一个窗口上托管的控件容器并不是一个好主意。如果您需要能够在面板和单独的窗口中显示相同的数据,请在带有面板的窗体上和Form1上使用相同的用户控件。
因此,用户控制。将它们添加到面板是非常简单的:
UserControl1 control1 = new UserControl1();
control1.Dock = DockStyle.Fill;
control1.SomethingHappened += UserControl1_SomethingHappened; // see below
panel1.Controls.Clear();
panel1.Controls.Add(control1);
对有能力切换用户控件,您可以添加事件UserControl1
,提高其点击按钮时:
// UserControl1 code
public event EventHandler SomethingHappened;
private void Button1_Click(object sender, EventArgs e)
{
if (SomethingHappened != null) // notify listeners, if any
SomethingHappened(this, EventArgs.Empty);
}
然后在你的主处理这个事件形式:
// MainForm code
private void UserControl1_SomethingHappened(object sender, EventArgs e)
{
UserControl1 control1 = (UserControl1)sender;
sender.SomethingHappened -= UserControl1_SomethingHappened;
UserControl2 control2 = new UserControl2();
control2.Dock = DockStyle.Fill;
panel1.Controls.Clear();
panel1.Controls.Add(control2);
}
你还尝试过什么吗?你在哪里遇到问题?你可以发布一些代码吗? – Hyarantar