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

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

时间: 2024-10-10 23:39:56

c# 自定义控件之小小进度条的相关文章

自定义控件——圆形圆点进度条(仿安全卫士中的一键加速)

一.源代码 源代码及demo下载(此进度条开源项目后续会持续添加.更新) 二.行动由来 在开发交流群中,一童鞋说要实现这个进度条,但在网上没有找到开源项目. 看到这个图片,很熟悉吧?有木有想点它的冲动?觉得有点意思,可以研究一下,再说也有一段时间没写自定义控件了,正好复习复习(说实话,一段时间没写,思路有,但就是不知道从哪开始).昨天花了一天的时间才把它搞定,先看效果图: 3种显示模式: 模拟进度动画效果: 说说它的特点: 显示模式有三种可选.如上展示: 全显在控件范围内.控件宽高不一时,会以小

iOS 自定义控件 progressView(环形进度条)

转帖:http://blog.csdn.net/xiangzhang321/article/details/42688133 之前做项目的时候有用到环形进度条,先是在网上找了一下第三方控件,发现好用是好用,就是东西太多了,有点复杂,还不如自己写一个简单点适合自己用的. 先把自定义控件的效果图贴出来.     其实我写的这个控件很简单.索性就直接把源码贴出来吧. .h文件的内容就是一些声明 #import <UIKit/UIKit.h> @interface ProgressView : UIV

Qt编写自定义控件13-多态进度条

前言 多态进度条,顾名思义,有多重状态,其实本控件主要是用来表示百分比进度的,由于之前已经存在了百分比进度条控件,名字被霸占了,按照先来先得原则,只好另外取个别名叫做多态进度条,应用场景是,某种任务有三种状态,比如正常状态.警戒状态.报警状态,这三种状态都分别有一个占比,需要用不同的颜色表示,这样就衍生出了此控件,类似于堆积图.接下来节假日四天,可以全身心投入研发还未完工的大屏UI程序,基础控件部分+二级界面部分都已经做好,现在专心整合到主界面和打通数据流(采用数据库采集+网络采集两种方式).多

Qt编写自定义控件14-环形进度条

前言 环形进度条,用来展示当前进度,为了满足大屏UI的需要特意定制,以前有个叫圆环进度条,不能满足项目需要,只能重新定做,以前的进度间距不能自适应分辨率,而且当前进度对应的反的进度不能单独设置颜色,即当前进度90%,剩余的10%也需要设置成不同的颜色,还有一个重要的功能是,能够指定多个警戒值,一旦超过或者小于该值,则当前进度自动切换到预先设定的警戒值颜色,而不需要用户自己去判断警戒值去设置警戒颜色,用户只需要传入当前值即可,这个功能非常实用,还可以设置警戒判断的标准是超过值还是小于值报警.个人感

Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

最近在Github上看到了daimajia写的一个开源组件NumberProgressBar觉得非常好,故而在其基础上进行了一些延伸与扩展,编写了一个NumberCircleProgressBar(即圆形的进度条),并且分为两种模式,我称之为rotate模式和rising_water模式. PS:也许本文介绍的方法不是最优(比如游戏开发中可能只需要调用一个方法即可完成),也可能会有纰漏,所以请读者海涵! NumberCircleProgressBar的样图如下: Rotate模式     Ris

Android自定义控件之圆形进度条ImageView

From:http://blog.csdn.net/xiadik/article/details/41648181package com.wangran.beautiful_girl_show.view; import com.wangran.beautiful_girl_show.view.photoview.PhotoView; import android.content.Context; import android.graphics.Canvas; import android.gra

Android自定义控件:进度条的四种实现方式

前三种实现方式代码出自: http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/ (源码在最后) 最近一直在学习自定义控件,搜了许多大牛们Blog里分享的小教程,也上GitHub找了一些类似的控件进行学习.发现读起来都不太好懂,就想写这么一篇东西作为学习笔记吧. 一.控件介绍: 进度条在App中非常常见,例如下载进度.加载图片.打开文章.打开网页等等--都需要这么一个效果让用户知道我们的App正在读取,以构造良好的

Android自定义控件系列之应用篇——圆形进度条

一.概述 在上一篇博文中,我们给大家介绍了Android自定义控件系列的基础篇.链接:http://www.cnblogs.com/jerehedu/p/4360066.html 这一篇博文中,我们将在基础篇的基础上,再通过重写ondraw()方法和自定义属性实现圆形进度条,效果如图所示: 二.实现步骤   1.  编写自定义组件MyCircleProgress扩展View public class MyCircleProgress extends View { - } 2.  在MyCircl

Android自定义控件:进度条的四种实现方式(Progress Wheel的解析)(源码 + Demo)

Progress Wheel为GitHub热门项目,作者是:Todd-Davies,项目地址: https://github.com/Todd-Davies/ProgressWheel 前三种实现方式代码出自: http://stormzhang.com/openandroid/2013/11/15/android-custom-loading/ (源码在最后) 最近一直在学习自定义控件,搜了许多大牛们Blog里分享的小教程,也上GitHub找了一些类似的控件进行学习.发现读起来都不太好懂,就想