下面是可用于同时具有多个面板的代码,并在添加到表单中的下一个按钮之间进行切换。
public Form1()
{
InitializeComponent();
panel1.Visible = true;
panel3.Visible = false;
panel2.Visible = false;
}
private void btnNext_Click(object sender, EventArgs e)
{
if (panel1.Visible)
{
panel1.Visible = false;
panel2.Visible = true;
panel3.Visible = false;
}
else if (panel2.Visible)
{
panel1.Visible = false;
panel2.Visible = false;
panel3.Visible = true;
}
else if (panel3.Visible)
{
panel1.Visible = true;
panel2.Visible = false;
panel3.Visible = false;
}
}
当然,如果你升序标记您的面板/降格式的标签之间没有间隙例如1,2,3,4或5,4,3,2不是1,2,4诸位可以使用此代码
public Form1()
{
InitializeComponent();
panel1.Visible = true;
panel2.Visible = false;
panel3.Visible = false;
}
private void btnNext_Click(object sender, EventArgs e)
{
TogglePanels();
}
public void TogglePanels()
{
List<Panel> allPanelsInForm = new List<Panel>();
foreach (var control in Controls)
{
if (control is Panel)
allPanelsInForm.Add(control as Panel);
}
Panel visiblePanel = allPanelsInForm.Where(o => o.Visible).FirstOrDefault();
int nextPanelId = Convert.ToInt32(visiblePanel.Tag) + 1;
bool nextPanelExists = allPanelsInForm.Exists(o => Convert.ToInt32(o.Tag) == nextPanelId);
nextPanelId = nextPanelExists ? nextPanelId : 1;
foreach (Panel panel in allPanelsInForm)
{
panel.Visible = Convert.ToInt32(panel.Tag) == nextPanelId ? true : false;
}
}
我希望它能帮助你。
我很抱歉,但这也是我的代码。这是不行的,因为它应该是。 – jayz
好的兄弟,但只是为了您的保证我自己检查这个代码与VS2013,他们都像一个魅力。你可以用一个空的项目来试试这个代码吗?也许这是一种帮助 – mostafakvd