C# listview进度条如何显示
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要讲解了"C# listview进度条如何显示",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C# listview进度条如何显示"吧!看看具
千家信息网最后更新 2025年01月17日C# listview进度条如何显示
这篇文章主要讲解了"C# listview进度条如何显示",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C# listview进度条如何显示"吧!
看看具体的实现过程。
程序比较简单,就是重载了listview的实现,不过很实用!
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; //C# listview进度条显示namespace WindowsApplication1 { class ListViewEx:System.Windows.Forms.ListView { public ListViewEx() { InitializeComponent(); } //C# listview进度条显示private Color mProgressColor = Color.Red; public Color ProgressColor { get { return this.mProgressColor; } set { this.mProgressColor = value; } } private Color mProgressTextColor = Color.Black; public Color ProgressTextColor { get { return mProgressTextColor; } set { mProgressTextColor = value; } } //C# listview进度条显示public int ProgressColumIndex { set { progressIndex = value; } get { return progressIndex; } } int progressIndex = -1; /// ﹤summary﹥ /// 检查是否可以转化为一个浮点数 /// ﹤/summary﹥ const string numberstring = "0123456789."; private bool CheckIsFloat(String s) { //C# listview进度条显示foreach (char c in s) { if (numberstring.IndexOf(c) ﹥ -1) { continue; } else return false; } return true; } protected override void Dispose(bool disposing) { base.Dispose(disposing); } //C# listview进度条显示private void InitializeComponent() { this.OwnerDraw = true; this.View = View.Details; } protected override void OnDrawColumnHeader( DrawListViewColumnHeaderEventArgs e) { e.DrawDefault = true; base.OnDrawColumnHeader(e); } protected override void OnDrawSubItem( DrawListViewSubItemEventArgs e) { if (e.ColumnIndex != this.progressIndex) { //C# listview进度条显示e.DrawDefault = true; base.OnDrawSubItem(e); } else { if (CheckIsFloat(e.Item.SubItems[e.ColumnIndex].Text)) //判断当前subitem文本是否可以转为浮点数 { float per = float.Parse(e.Item. SubItems[e.ColumnIndex].Text); if (per ﹥= 1.0f) { per = per / 100.0f; } Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height); DrawProgress(rect, per, e.Graphics); } } } //C# listview进度条显示 ///绘制进度条列的subitem private void DrawProgress(Rectangle rect, float percent, Graphics g) { if (rect.Height ﹥ 2 && rect.Width ﹥ 2) { //if ((rect.Top ﹥ 0 && rect.Top ﹤ this.Height) &&(rect.Left ﹥ this.Left && rect.Left ﹤ this.Width)) { //绘制进度 int width = (int)(rect.Width * percent); Rectangle newRect = new Rectangle(rect.Left + 1, rect.Top + 1, width - 2, rect.Height - 2); using (Brush tmpb = new SolidBrush(this.mProgressColor)) { g.FillRectangle(tmpb, newRect); } newRect = new Rectangle(rect.Left + 1, rect.Top + 1, rect.Width - 2, rect.Height - 2); g.DrawRectangle(Pens.RoyalBlue, newRect); StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; sf.Trimming = StringTrimming.EllipsisCharacter; newRect = new Rectangle(rect.Left + 1, rect.Top + 1, rect.Width - 2, rect.Height - 2); using (Brush b = new SolidBrush(mProgressTextColor)) { g.DrawString( percent.ToString("p1"), this.Font, b, newRect, sf); } } } //C# listview进度条显示else { return; } } } }
感谢各位的阅读,以上就是"C# listview进度条如何显示"的内容了,经过本文的学习后,相信大家对C# listview进度条如何显示这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
进度
C#
学习
内容
就是
点数
实用
思路
情况
文本
文章
更多
知识
知识点
程序
篇文章
跟着
过程
问题
实践
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
从网络服务器上接收存档数据
奇谦网络技术上海
深圳万腾达网络技术有限公司
软件开发去成都还是西安
物理服务器有什么意思
电脑做云服务器
崇明区创新数据库服务销售价格
二手服务器回收后怎么处理
崇明区专业软件开发供应商
微信视频会不会保存到服务器
机器人加网络安全锁
软件开发项目种类
软件开发的现况
软件开发原型模式的优缺点
地理信息 软件开发 区别
网络安全基地吴家山有房子卖吗
中国大学数据库应用答案
安卓软件开发日期钟
三级网络技术题库文档
数据库原理与应用多久能学会
数据库高级技术实践报告
红鸟直播软件开发
数据库可以连接两台电脑吗
大数据如何提高网络安全
苹果无法接通激活服务器
天河数据库位置更改
ifist服务器管理软件
软件开发工具的核心
网络安全受年龄限制吗
浪潮服务器管理口怎么打开