0

编辑
我找到并发布了解决方案。

我正在尝试为我的应用程序制作安装程序,并且我正在尝试使用面板进行安装(我不知道这是否是一种好方法,但这为我提供了更多自定义选项,而不是使用 install shield 程序) . 最好的方法是什么?
这是我知道的代码:

C# 代码

foreach (var c in Controls)
{
    if (!(c is Panel)) continue;
    if (c.Name == "pnlBottom") continue;
        
    c.Visible = c.Name.Contains(_currentPanel.ToString());
    
    if (c.Visible) return;
}
4

2 回答 2

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;
    }
}
于 2012-11-17T20:00:41.777 回答
1

这是我用来显示面板的代码:

foreach (var c in Controls)
{
    if (!(c is Panel)) continue;
    if (c.Name == "pnlBottom") continue;
        
    c.Visible = c.Name.Contains(_currentPanel.ToString());
    
    if (c.Visible) return;
}

这是我用来调用它并浏览我的面板的代码:
下一步按钮

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!

于 2012-11-17T19:47:55.240 回答