【发布时间】:2013-10-28 12:03:21
【问题描述】:
我正在尝试使用 winforms 制作多页应用程序。我决定使用多个面板 - 每个面板代表不同的页面,所以当我需要显示不同的内容时,我可以在它们之间切换。 我在运行时的问题是当我尝试在面板之间切换时它不起作用。
我的代码:
private void Form2_Load(object sender, EventArgs e)
{
panel2.Visible = false;
}
private void label4_Click(object sender, EventArgs e)
{
panel1.Visible = true;
}
private void label5_Click(object sender, EventArgs e)
{
panel2.Visible = true;
panel1.Visible = false;
}
【问题讨论】:
-
什么不工作,你能描述得更好一点吗?
-
我猜你只是在 label4_Click 事件处理程序中缺少 panel2.Visible = false;。
-
IMO,更好的解决方案是为每个面板创建一个专门的
UserControl。 Control.Controls.Add(myUserPanel) 或 Control.Controls.Remove(myUserPanel) 切换出面板。这避免了同一设计器视图中出现多个面板的问题。 -
我试图在单击 label4 时显示 panel1,并且在单击 label5 时 panel2 必须可见。panel1 可见但 panel2 在我单击 label5 时不可见
-
这样的“堆叠”面板的一个常见问题是,将它们放置在表单上的正上方通常会导致一个面板实际上位于另一个面板内(而不是被表单本身包含) )。仅通过在表格上查看它们可能并不明显! Amoolya 建议使用 UserControl 而不是 Panel 可以防止此类问题。