基于C#實(shí)現(xiàn)的仿windows左側(cè)伸縮菜單效果
更新時(shí)間:2014年08月04日 09:17:11 投稿:shichen2014
這篇文章主要介紹了基于C#實(shí)現(xiàn)的仿windows左側(cè)伸縮菜單效果,比較實(shí)用的功能,需要的朋友可以參考下
本文所述為基于C#實(shí)現(xiàn)的折疊菜單,風(fēng)格仿照Windows打開(kāi)我的電腦后左側(cè)的伸縮菜單效果,并且同樣是藍(lán)色的效果,看著和windows的效果一樣漂亮,可以實(shí)現(xiàn)折疊、展開(kāi)等功能。這在學(xué)習(xí)C#界面編程的時(shí)候能用上,其主要實(shí)現(xiàn)代碼如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace LikesXP { public partial class Frm_Main : Form { public Frm_Main() { InitializeComponent(); } private static Panel Var_Panel = new Panel();//創(chuàng)建靜態(tài)字段 private static PictureBox Var_Pict = //創(chuàng)建靜態(tài)字段 new PictureBox(); private static int Var_i = 0;//創(chuàng)建靜態(tài)字段 private Font Var_Font = new Font("宋體", 9); //創(chuàng)建字體字段 private void pictureBox_1_Click(object sender, EventArgs e) { Var_i = Convert.ToInt16((//得到控件中的數(shù)據(jù) (PictureBox)sender).Tag.ToString()); switch (Var_i) { case 1: { Var_Panel = panel_Gut_1;//得到面板對(duì)象引用 //Var_Pict = pictureBox_1;//得到PictureBox對(duì)象引用 break; } case 2: { Var_Panel = panel_Gut_2;//得到面板對(duì)象引用 Var_Pict = pictureBox_2;//得到PictureBox對(duì)象引用 break; } case 3: { Var_Panel = panel_Gut_3;//得到面板對(duì)象引用 Var_Pict = pictureBox_3;//得到PictureBox對(duì)象引用 break; } } if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 0 || Convert.ToInt16(Var_Panel.Tag.ToString()) == 2) { Var_Panel.Tag = 1;//設(shè)置為隱藏標(biāo)識(shí) Var_Pict.Image = Properties.Resources.朝下按鈕;//設(shè)置圖像屬性 Var_Panel.Visible = false;//隱藏面板 } else { if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 1) { Var_Panel.Tag = 2;//設(shè)置為顯示標(biāo)識(shí) Var_Pict.Image = Properties.Resources.朝上按鈕;//設(shè)置圖像屬性 Var_Panel.Visible = true;//顯示面板 } } } private void Form1_Load(object sender, EventArgs e) { //pictureBox_1.Image = Properties.Resources.朝上按鈕;//設(shè)置圖像信息 pictureBox_2.Image = Properties.Resources.朝上按鈕;//設(shè)置圖像信息 pictureBox_3.Image = Properties.Resources.朝上按鈕;//設(shè)置圖像信息 Var_Font = label_1.Font;//得到字體對(duì)象 } private void label_1_MouseEnter(object sender, EventArgs e) { ((Label)sender).ForeColor = Color.Gray;//設(shè)置控件文字字顏色 ((Label)sender).Font = //設(shè)置控件字體 new Font(Var_Font, Var_Font.Style | FontStyle.Underline); } private void label_1_MouseLeave(object sender, EventArgs e) { ((Label)sender).ForeColor = Color.Black;//設(shè)置控件文字顏色 ((Label)sender).Font = //設(shè)置控件字體 new Font(Var_Font, Var_Font.Style); } private void pictureBox1_Click(object sender, EventArgs e) { if (Convert.ToInt16(panel1.Tag.ToString()) == 1) { timer1.Start(); Convert.ToDateTime("").ToShortDateString(); // pictureBox1.Image = Properties.Resources.朝下按鈕;//設(shè)置圖像屬性 //panel1.Visible = false;//隱藏面板 } else { if (Convert.ToInt16(panel1.Tag.ToString()) == 0) { timer1.Start(); //panel1.Tag = 1;//設(shè)置為顯示標(biāo)識(shí) //pictureBox1.Image = Properties.Resources.朝上按鈕;//設(shè)置圖像屬性 //panel1.Visible = true;//顯示面板 } } } private void timer1_Tick(object sender, EventArgs e) { long longWidth = panel1.Width; //如果panel目前是隱藏的 if (Convert.ToInt16(panel1.Tag.ToString()) == 0) { if (longWidth == 200) { timer1.Enabled = false; panel1.Tag = 1;//設(shè)置為顯示標(biāo)識(shí) } else { panel1.Width += 10; } } //如果panel目前是顯示的 if (Convert.ToInt16(panel1.Tag.ToString()) == 1) { if (longWidth == 0) { timer1.Enabled = false; panel1.Tag = 0;//設(shè)置為隱藏標(biāo)識(shí) } else { panel1.Width -= 10; } } } } }
這里只展示了主要的功能代碼,其他的實(shí)現(xiàn)細(xì)節(jié)讀者可以自己進(jìn)一步完善。
相關(guān)文章
Unity UI組件ScrollRect實(shí)現(xiàn)無(wú)限滾動(dòng)條
這篇文章主要為大家詳細(xì)介紹了Unity UI組件ScrollRect實(shí)現(xiàn)無(wú)限滾動(dòng)條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07