千家信息网

C# listview进度条如何显示

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"C# listview进度条如何显示",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C# listview进度条如何显示"吧!看看具
千家信息网最后更新 2026年10月31日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安全错误 数据库的锁怎样保障安全 伟宏互联网科技 科技和互联网公司 北京互联网科技 金融科技与互联网金融 互联网 科技创新 互联网科技宣传片 人人互联网科技是培训 银川新华互联网科技职业技术培训学校图片 湖南诚度互联网科技有限公司 宜昌元轩互联网科技有限公司 开一家科技互联网公司需要多少钱 互联网科技人工智能实验室 恒生互联网科技业指数调整周期 国大互联网教育科技有限公司薪资 互联网科技融合创新 互联网硬科技公司 美国五大互联网科技公司市值多少 安徽九吞吴互联网科技有限公司 互联网企业和网络科技有限公司 六子台科技互联网展会 南京欣网互联网络科技 互联网科技图片 互联网扶贫科技 深圳互联网络科技有限公司 汉立互联网科技有限公司联系电话 厦门千工互联网科技有限公司 恒生互联网科技指数跳水 健康食品互联网创新科技园项目 区块链结合互联网科技 2021互联网科技公司排名
0