zoukankan      html  css  js  c++  java
  • c# 自定义控件之小小进度条

    先看效果图:

    非常简洁的一个进度条。

    完整项目源码下载:http://files.cnblogs.com/files/tuzhiyuan/%E8%BF%9B%E5%BA%A6%E6%9D%A1%E6%8E%A7%E4%BB%B6%E8%87%AA%E5%AE%9A%E4%B9%891.rar

    下面是代码:

     1  int _now = 1;
     2         Color hatchColor;
     3         public MYProgressBar()
     4         {
     5             InitializeComponent();
     6         }
     7         //设置当前进度位置
     8         [Description("设置当前进度所在位置")] //显示在属性设计视图中的描述
     9         [DefaultValue(typeof(Int32), "0")]//给予初始值
    10         public int Value
    11         {
    12 
    13             get
    14             {
    15                 return _now;
    16             }
    17             set
    18             {
    19                 if (value > 100)
    20                 {
    21                     _now = 100;
    22                     SetJinDu(100);
    23                 }
    24                 else if (value < 0)
    25                 {
    26                     _now = 0;
    27                     SetJinDu(0);
    28                 }
    29                 else
    30                 {
    31                     _now = value;
    32                     SetJinDu(value);
    33                 }
    34             }
    35         }
    36         [Description("设置进度条进度颜色")] //显示在属性设计视图中的描述
    37         [DefaultValue(typeof(Color), "Control")]//给予初始值
    38         public Color BarColor
    39         {
    40             get { return hatchColor; }
    41             set
    42             {
    43                 hatchColor = value;
    44                 panel1.BackColor = value;
    45             }
    46         }
    47         private void MYProgressBar_Load(object sender, EventArgs e)
    48         {
    49 
    50         }
    51         public void SetJinDu(int number)
    52         {
    53 
    54             //获取控件宽度
    55             float db_this_width = this.Width;
    56 
    57 
    58             //进度值除以100得到进度条宽度相对的百分比
    59             float bfz = (float)number / 100;
    60 
    61 
    62             //控件宽度乘以百分比得到进度条Panel的相对宽度
    63             panel1.Width = Convert.ToInt32((float)db_this_width * bfz);
    64 
    65         }
    66    
    67         //控件发生大小改变事件
    68         private void MYProgressBar_Resize(object sender, EventArgs e)
    69         {
    70             panel1.Height = this.Height;
    71             SetJinDu(Value);
    72         }

    如何使用,在winform工具栏右键选择项>浏览,选择自定义控件dll文件,即可在工具栏看到,拖动使用。

    还是那句老话,没有完善,需要用还需继续完善。

  • 相关阅读:
    【转】最奇特的编程语言特征
    【原】mysql 视图
    自己动手写ORM框架(一):目标效果预览
    (二)Javascript面向对象:命名空间
    在JAVA中封装JSONUtils工具类及使用(一)
    .NET3.5中JSON用法以及封装JsonUtils工具类(二)
    (四)Javascript面向对象:继承
    自己动手写ORM框架(三):关系映射配置—Table属性
    (一)javascript面向对象:(2)类
    自己动手写ORM框架(二):AdoHelper支持多数据库操作的封装(1)
  • 原文地址:https://www.cnblogs.com/tuzhiyuan/p/4497295.html
Copyright © 2011-2022 走看看