c# 自定义控件之小小进度条

先看效果图:

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文件,即可在工具栏看到,拖动使用。

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

你可能感兴趣的:(自定义控件)