【C#】C# Winform 自定义进度条ProgressBar
CrazyPanda发表于:2024-02-01 23:33:15浏览:325次
效果:
一、前言
Winfrom各种老毛病真的不适合做大型项目,甚至中型项目都不适合,一些小功能都能把你折腾半死,比如,我想在界面上显示一个进度条,用来显示现在硬盘和内存已经使用了多少,使用了 ProgressBar 控件你看看效果:
进度条中间一直有个白色光影在晃来晃去的,是不是想让别人感慨:“哇!好强的光芒,我的眼睛快睁不开了...”。而且背景颜色无法改变,这个动画也无法关掉,为了解决这两个问题,我找了很久,终于找到了下面的解决方法。
二、自定义进度条
于是我在网上找了一些资料,有到效果有,但不是特别漂亮,比如下面这个
另外,我参考了下面到帖子
Winform自定义控件-进度条/图片图标进度条_思无心的博客-CSDN博客_winform进度条控件
1.添加用户控件
添加一个用户控件,取名为 ProgressBarControl
添加完成后,界面如下
我们将界面调整一下,让其看上去像个进度条,比如宽度 250,高度 30
2.添加代码
代码:
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 自定义控件 { public partial class ProgressBarControl : UserControl { private int val;//进度值 private Color PBackgroundColor = Color.FromArgb(217, 218, 219);//初始化颜色 private Color PForegroundColor = Color.Green; public ProgressBarControl() { InitializeComponent(); } /// <summary> /// 背景色 /// </summary> public Color pBackgroundColor { get => PBackgroundColor; set { PBackgroundColor = value; this.BackColor = PBackgroundColor; } } /// <summary> /// 前景色 /// </summary> public Color pForegroundColor { get => PForegroundColor; set => PForegroundColor = value; } /// <summary> /// 当前值 /// </summary> public int Val { get => val; set { val = value; this.Invalidate(); } } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; SolidBrush brush = new SolidBrush(PForegroundColor); float percent = val / 100f; Rectangle rect = this.ClientRectangle; rect.Width = (int)((float)rect.Width * percent); rect.Height = this.Height; g.FillRectangle(brush, rect); brush.Dispose(); g.Dispose(); } private void InitializeComponent() { this.SuspendLayout(); this.Name = "ProgressBarControl"; this.Size = new System.Drawing.Size(250, 30); this.ResumeLayout(false); } } }
添加代码完成后,就完成了基本的操作了,下面开始使用
三、使用方法
先点击Form1 界面,在工具箱就可以看到 命名空间对应的自定义组件了
将 ProgressBarControl 控件直接拖入到Form1中即可,如下
然后在属性窗体就可以看到比Winform的ProgressBar多出来一些功能,这就是你在代码中添加的
我们可以将背景颜色改为其他颜色
改变进度条到进度,使用下面代码即可
progressBarControl1.Val = 50;
效果:
本案例源码:点击下载
结束
如果这个帖子对你有用,欢迎 关注 + 点赞 + 留言,谢谢
end
猜你喜欢
- 【C#】C# Winform 日志系统
- 目录一、效果1.刷新日志效果2.单独日志的分类3.保存日志的样式二、概述三、日志系统API1.字段Debug.IsScrollingDebug.VersionDebug.LogMaxLenDebug.LogTitleDebug.IsConsoleShowLog2.方法Debug.Log(string)Debug.Log(string, params object[])Debug.Logs(string)Debug.Logs(string, params object[])Debug.LogSav
- 【C#】C# Winform 文本面板带滚动条
- 在PC软件开发中经常有这样的需求,需要在一个固定大小的面板中显示一些内容,并且面板能上下拖动,将所有的内容完整的展示,有点类似网页上看新闻,如果要在 winfrom 中要如何实现的呢,下面就演示如何实现的吧效果:1.新建一个winform 项目,在界面中拖入一个Panel 将 panel1 的 AutoScroll 设置为 True2.再次拖入一个 Panel ,将高度拉长,这时就自动出现了滚动条,只是此时里面还没有任何内容,下面就在 panel2 中加入一点内容。
- 【C#】C# Winform 相册功能,图片缩放,拖拽,预览图分页
- 一、前言在一些项目中也会用到预览图片的功能,至于为什么有一个添加图片的按钮,是因为有些项目,比如视觉相关的项目,摄像头拍摄图片,然后显示在界面上,拍一次显示一张。另一个,就是分页功能,当预览图位置不够用时就会用到。当前软件的功能1.添加图片如果8个预览图都满了,会自动分页,就可以点击上一页,或者下一页了。2.点击预览图显示大图点击预览图,之前的拖拽和放大会自动复位3.大图可以拖拽,放大,缩小如果图片比较小,有这个功能就看到图片的更多细节了。4.图片倒序排列最后拍摄的图片,始终显示在前面,方便用户
- 【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存
- 目录需求NanUI0.88版本的缓存路径NanUI0.77版本的缓存路径试着实现功能添加扩展出现的问题解决问题结束需求清除web前端保存的一些的数据,或者清除浏览器缓存会用到。NanUI0.88版本的缓存路径在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。0.88版本的缓存路径:"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Stu
- 【C#】C# Winform 定时清理日志
- 一、前言在 Winform 开发中经常有这样的需求,在用户执行一些操作不正确时,需要将错误信息反馈给用户,比如:登录密码不正确,无法连接到服务器等,一般常见的用法有两个:1.弹框使用 MessageBox.Show("密码错误"); 这样的方式,弹框后,用户必须点击确定后才能执行下一步操作,给用户的体验并不是特别好。2.在界面中显示错误信息,定时清除如果是输入框,直接用 ErrorProvider 控件就行了。如果只是做一些简单的提示信息,那么就要定时清除
- 【C#】C#二分查找(迭代与递归)
- 二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。二分查找算法示例 何时在数据结构中应用二分查找的条件: 应用二分查找算法: 1、数据结构必须是有序的。 2、访问数据结构的任何元素都
- 【C#】C# Winform 自定义进度条ProgressBar
- 效果:一、前言Winfrom各种老毛病真的不适合做大型项目,甚至中型项目都不适合,一些小功能都能把你折腾半死,比如,我想在界面上显示一个进度条,用来显示现在硬盘和内存已经使用了多少,使用了 ProgressBar 控件你看看效果:进度条中间一直有个白色光影在晃来晃去的,是不是想让别人感慨:“哇!好强的光芒,我的眼睛快睁不开了...”。而且背景颜色无法改变,这个动画也无法关掉,为了解决这两个问题,我找了很久,终于找到了下面的解决方法。二、自定义进度条于是我在网上找了一些资料,有到效果有,但不是特别
- 【C#】Winform NanUI 0.77版本 JS和C#相互调用
- 目录一、导入插件二、常用方法三、C#和JS相互调用1.C# 调用JS2.JS调用C#方法3.完整版C#代码4.完整版JS代码结束一、导入插件用的NanUI版本0.77参考官方地址:https://docs.formium.net/zh-hans/tutorial/first-app.html二、常用方法基础代码:using NetDimension.NanUI; using NetDimension.NanUI.Browser; class MainW
栏目分类全部>