博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 使用GDI制作垂直进度条(由下往上)
阅读量:5212 次
发布时间:2019-06-14

本文共 1165 字,大约阅读时间需要 3 分钟。

使用GDI+绘进度条的方式多种多样,可以封装一个UserControl,也可以直接使用一个控件来绘制(Label、Image、Panel等),甚至可以直接在winForm上画一个,关键代码没几行(这里是一个量杯的进度条为例):

          Graphics g = e.Graphics;                SolidBrush brush = null;                string strName = "";                //由下至上的进度条需要开始时设置一个100%进度的背景色+一个白色层,使用时白色层根据进度减小高度                brush = new SolidBrush(Color.White);                //获取进度:已经倒入的重量/进度条高度*100                Info.Progress = Info.ActualWeight / e.ClipRectangle.Height * 100;                //画前色(这里的进度条高度是不固定的=总重量,所以直接高度-倒入的重量就可以了,如果是固定的高度,计算一下需要减少多少就行)                e.Graphics.FillRectangle(brush, 0, 0, e.ClipRectangle.Width, e.ClipRectangle.Height - (int)Info.ActualWeight);                strName = Info.Name + ":" + Info.Progress.ToString("0.00") + "%";                //得到写入的字符串像素宽度--居中用                SizeF sf = g.MeasureString(strName, this.Font);                //显示进度                g.DrawString(strName, this.Font, new SolidBrush(ForeColor), e.ClipRectangle.Width / 2 - sf.Width / 2, e.ClipRectangle.Height / 2 - this.Font.Height / 2);

注意:进度条更新时需要调用   *.Invalidate();

 

posted on
2018-01-09 09:52 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/boyxzhen/p/8249933.html

你可能感兴趣的文章
Combination Sum III -- leetcode
查看>>
中国剩余定理
查看>>
刘汝佳,竖式问题
查看>>
hdu--1029--思维题
查看>>
基础笔记一
查看>>
uva 10137 The trip
查看>>
spring 解决中文乱码问题
查看>>
Maven 介绍
查看>>
hdu 4268
查看>>
启动tomcat时cmd窗口一闪而过
查看>>
两个有序数列,求中间值 Median of Two Sorted Arrays
查看>>
vue路由的实现原理
查看>>
Java核心技术:Java异常处理
查看>>
Python 学习笔记一
查看>>
引入列表,将对话分类添加到对应列表中
查看>>
回文子串
查看>>
Count Numbers
查看>>
React——JSX
查看>>
编写高质量代码改善C#程序的157个建议——建议110:用类来代替enum
查看>>
最大公约数求解
查看>>