自己寫(xiě)的一個(gè)C#的折疊菜單,可能寫(xiě)的很麻煩。。。仿WINDOWS那種吧,點(diǎn)一個(gè)按鈕就會(huì)隱藏顯示下面的菜單,其他菜單不變,以上
//兩個(gè)LIST用來(lái)放BUTTON和PANEL
List<Button> listbut = new List<Button>();
List<Panel> listpan = new List<Panel>();
//這里就不多寫(xiě)了
private void Form1_Load(object sender, EventArgs e)
{
button3.Top = 0;
panel3.Top = button3.Top + button3.Height;
button4.Top = panel3.Top + panel3.Height;
panel4.Visible = false;
button5.Top = button4.Top + button4.Height;
panel5.Visible = false;
listbut.Add(button3);
listbut.Add(button4);
listbut.Add(button5);
listpan.Add(panel3);
listpan.Add(panel4);
listpan.Add(panel5);
}
//實(shí)現(xiàn)折疊的方法
private void btnpanv(Button btn)
{
int num1 = int.Parse(btn.Name.Substring(6));//這里的裁剪根據(jù)按鈕名字來(lái)寫(xiě)
foreach (Button bt in listbut)
{
int num2 = int.Parse(bt.Name.Substring(6));//這里的裁剪根據(jù)按鈕名字來(lái)寫(xiě)
int top = 0;
foreach (Panel pl in listpan)
{
int pnum = int.Parse(pl.Name.Substring(5));這里的裁剪根據(jù)PANEL名字來(lái)寫(xiě)
if (num2 > pnum && num2 != 3)//此處的3是最上的按鈕編號(hào)
{
if (pl.Visible == true)
{
top += this.button3.Height + pl.Height;
}
else
{
top += this.button3.Height;
}
}
else if (num2 == pnum)
{
if (num2 == num1)
{
if (pl.Visible == true)
{
pl.Visible = false;
}
else
{
pl.Visible = true;
}
}
pl.Top = top + bt.Height;
break;
}
}
bt.Top = top;
}
}
private void button3_Click(object sender, EventArgs e)
{
btnpanv(button3);
}
private void button4_Click(object sender, EventArgs e)
{
btnpanv(button4);
}
private void button5_Click(object sender, EventArgs e)
{
btnpanv(button5);
}