在程序開發的過程中,有時候為了讓我們程序的主要內容能夠顯示的區域更大,我們需要把一些面板折疊起來,今天就簡單介紹一種菜單面板折疊的實現。
首先,先用panel將構建出整體的頁面布局,然后在菜單面板上添加上一個折疊按鈕或者圖片控件都可以,並將控件的Anchor屬性成Top|Right,這樣在頁面折疊時,控件能夠隨着panel的寬度進行相對位置移動。
然后我們就可以為折疊按鈕添加一個事件,當點擊按鈕的時候進行面板的狀態判斷,然后設置他的寬度。而狀態變化的過程(即收縮和展開),我們通過時鍾進行處理。
private bool isCollapse = true;//面板狀態(0折疊/1展開)
// 折疊按鈕事件觸發時鍾開啟
private void button2_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (isCollapse)
{
if (this.panelCollapse.Width > 40) // 面板最小寬度
{
this.panelCollapse.Width -= 10;
}
else
{
isCollapse = !isCollapse;
timer1.Stop();
}
}
else
{
if (this.panelCollapse.Width < 180) // 面板最大寬度
{
this.panelCollapse.Width += 10;
}
else
{
isCollapse = !isCollapse;
timer1.Stop();
}
}
}