当前位置:  编程技术>.net/c#/asp.net

基于C#实现的仿windows左侧伸缩菜单效果

    来源: 互联网  发布时间:2014-10-31

    本文导语:  本文所述为基于C#实现的折叠菜单,风格仿照Windows打开我的电脑后左侧的伸缩菜单效果,并且同样是蓝色的效果,看着和windows的效果一样漂亮,可以实现折叠、展开等功能。这在学习C#界面编程的时候能用上,其主要实现代码...

本文所述为基于C#实现的折叠菜单,风格仿照Windows打开我的电脑后左侧的伸缩菜单效果,并且同样是蓝色的效果,看着和windows的效果一样漂亮,可以实现折叠、展开等功能。这在学习C#界面编程的时候能用上,其主要实现代码如下:

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();//创建静态字段
    private static PictureBox Var_Pict = //创建静态字段
      new PictureBox();
    private static int Var_i = 0;//创建静态字段
    private Font Var_Font = new Font("宋体", 9); //创建字体字段
    private void pictureBox_1_Click(object sender, EventArgs e)
    {
      Var_i = Convert.ToInt16((//得到控件中的数据
        (PictureBox)sender).Tag.ToString());
      switch (Var_i)
      {
        case 1:
          {
            Var_Panel = panel_Gut_1;//得到面板对象引用
            //Var_Pict = pictureBox_1;//得到PictureBox对象引用
            break;
          }
        case 2:
          {
            Var_Panel = panel_Gut_2;//得到面板对象引用
            Var_Pict = pictureBox_2;//得到PictureBox对象引用
            break;
          }
        case 3:
          {
            Var_Panel = panel_Gut_3;//得到面板对象引用
            Var_Pict = pictureBox_3;//得到PictureBox对象引用
            break;
          }
      }
      if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 0 || Convert.ToInt16(Var_Panel.Tag.ToString()) == 2)
      {
        Var_Panel.Tag = 1;//设置为隐藏标识
        Var_Pict.Image = Properties.Resources.朝下按钮;//设置图像属性
        Var_Panel.Visible = false;//隐藏面板
      }
      else
      {
        if (Convert.ToInt16(Var_Panel.Tag.ToString()) == 1)
        {
          Var_Panel.Tag = 2;//设置为显示标识
          Var_Pict.Image = Properties.Resources.朝上按钮;//设置图像属性
          Var_Panel.Visible = true;//显示面板
        }
      }
    }
    private void Form1_Load(object sender, EventArgs e)
    {
      //pictureBox_1.Image = Properties.Resources.朝上按钮;//设置图像信息
      pictureBox_2.Image = Properties.Resources.朝上按钮;//设置图像信息
      pictureBox_3.Image = Properties.Resources.朝上按钮;//设置图像信息
      Var_Font = label_1.Font;//得到字体对象
    }
    private void label_1_MouseEnter(object sender, EventArgs e)
    {
      ((Label)sender).ForeColor = Color.Gray;//设置控件文字字颜色
      ((Label)sender).Font = //设置控件字体
        new Font(Var_Font, Var_Font.Style | FontStyle.Underline);
    }
    private void label_1_MouseLeave(object sender, EventArgs e)
    {
      ((Label)sender).ForeColor = Color.Black;//设置控件文字颜色
      ((Label)sender).Font = //设置控件字体
        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.朝下按钮;//设置图像属性
        //panel1.Visible = false;//隐藏面板
      }
      else
      {
        if (Convert.ToInt16(panel1.Tag.ToString()) == 0)
        {
          timer1.Start();
          //panel1.Tag = 1;//设置为显示标识
          //pictureBox1.Image = Properties.Resources.朝上按钮;//设置图像属性
          //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;//设置为显示标识
        }
        else
        {
          panel1.Width += 10;
        }
      }
      //如果panel目前是显示的
      if (Convert.ToInt16(panel1.Tag.ToString()) == 1)
      {
        if (longWidth == 0)
        {
          timer1.Enabled = false;
          panel1.Tag = 0;//设置为隐藏标识
        }
        else
        {
          panel1.Width -= 10;
        }
      }
    }
  }
}

这里只展示了主要的功能代码,其他的实现细节读者可以自己进一步完善。


    
 
 

您可能感兴趣的文章:

  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  • android 自定义ScrollView实现背景图片伸缩的实现代码及思路
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用GTK如何实现抽屉菜单
  • 怎样实现菜单和工具栏的事件传递的统一??
  • 急,急,急!!!高分求购java实现动态树型菜单的源代码
  • 在jsp 中如何实现像asp 中的页面弹出式的菜单
  • 请问用J2ME开发的同行,怎么实现菜单呀?
  • 如何用JSP实现菜单功能
  • C#自定义控件添加右键菜单的实现代码
  • android实现始终显示overflow菜单的方法
  • 类似于Shell界面下setup命令的文本模式菜单用C语言如何实现
  • VC实现动态菜单的创建方法
  • 请问怎样弹出像提问这样的没有菜单的窗口,jsp怎样实现?
  • C#.NET程序添加到右键菜单的实现代码
  • [求助]分析这种特效菜单实现时遇到的问题!请帮助!---在线恭候!!!
  • 用C如何实现linux下minicom按ctrl+A Z弹出的菜单效果?
  • jquery实现带二级菜单的导航示例
  • jquery 遮罩层效果实现的导航菜单
  • jquery遮罩层效果实现导航菜单代码
  • android游戏载入的activity跳转到游戏主菜单的activity具体实现
  • jsp 如何实现 IE文件菜单中‘另存为’的功能。简单的说就是在网页中加个按钮,点击之后可以把本页的页面另存为txt/html文件。在线等待,
  • android在连拍菜单中增加连拍张数选项功能实现代码
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3