C# listview进度条如何显示
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要讲解了"C# listview进度条如何显示",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C# listview进度条如何显示"吧!看看具
千家信息网最后更新 2025年11月06日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安全错误
数据库的锁怎样保障安全
大连华信的对日软件开发
ibm刀片服务器管理口
数据库技术计算机三级书本
网络安全预案模板
应聘互联网科技主办会计
文档是软件开发与软件管理
u盘如何当数据库
数据库第五版课后答案第四章
上海电商软件开发定制是什么
中国互联网与美国科技
5G是新一代无线网络技术英文
手机访问sanba服务器
转录组测序比较数据库的选择
服务器国外服务商
MC国际服服务器慢
hp服务器做raid5
幼儿园网络安全整治情况
数据库前端开发有哪些
网站怎么连接数据库答辩问题
数据库通环比例子
高校网站服务器搭建与设计
点将设计软件开发
青少年网络安全问题ppt
物联网短距离网络技术
四川肺炎疫情最新数据库
上海制造网络技术价格查询
是数据库安全的第一道
软件开发 淘汰率
张家港嵌入式软件开发
网络安全法中的授权支付