修改
我找到并发布了解决方案。
我正在尝试为我的应用程序创建一个安装程序,我正在尝试使用面板(我不知道这是否是一个很好的方法,但这给了我更多的自定义选项,而不是使用安装盾牌计划)。最好的方法是什么?
这是我所知道的代码:
C#代码
foreach (Control c in Controls)
{
if (c is Panel)
{
if (c.Name != "pnlBottom")
{
if (c.Name.Contains(_currentPanel.ToString()))
{
c.Visible = true;
return;
}
else
{
c.Visible = false;
}
}
}
}
答案 0 :(得分:5)
试试这个,它会改变单个面板的可见性:
private void PanelVisible(string panelName, bool visible)
{
var panel = this.Controls.OfType<Panel>().FirstOrDefault(p => p.Name == panelName);
if (panel != default(Panel)) panel.Visible = visible;
}
如果你想制作所有不可见的,只有一个:
private void PanelVisible(string panelName)
{
foreach(var panel in this.Controls.OfType<Panel>().Where(p=>p.Name!="pnlBottom"))
{
panel.Visible = panel.Name == panelName;
}
}
答案 1 :(得分:1)
这是我用来显示面板的代码:
private void ShowPanel(string panel)
{
foreach (Control c in Controls)
{
if (c is Panel)
{
if (c.Name != "pnlBottom")
{
if (c.Name.Contains(panel))
{
c.Visible = true;
return;
}
else
{
c.Visible = false;
}
}
}
}
}
这是我用来调用它并浏览我的面板的代码:
下一步按钮
private void btnNext_Click(object sender, EventArgs e)
{
if (pnlContent1.Visible) { ShowPanel("2"); return; }
if (pnlContent2.Visible) { ShowPanel("3"); return; }
if (pnlContent3.Visible) { ShowPanel("4"); return; }
if (pnlContent4.Visible) { ShowPanel("5"); return; }
}
后退按钮
private void btnBack_Click(object sender, EventArgs e)
{
if (pnlContent2.Visible) { ShowPanel("1"); return; }
if (pnlContent3.Visible) { ShowPanel("2"); return; }
if (pnlContent4.Visible) { ShowPanel("3"); return; }
if (pnlContent5.Visible) { ShowPanel("4"); return; }
}
我希望这也适用于其他人:D!