你的位置:首页 > ASP.net教程

[ASP.net教程]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 Value11     {12 13       get14       {15         return _now;16       }17       set18       {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         else30         {31           _now = value;32           SetJinDu(value);33         }34       }35     }36     [Description("设置进度条进度颜色")] //显示在属性设计视图中的描述37     [DefaultValue(typeof(Color), "Control")]//给予初始值38     public Color BarColor39     {40       get { return hatchColor; }41       set42       {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文件,即可在工具栏看到,拖动使用。

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