时间:2021-05-20
推荐阅读:ListView 百分比进度条(delphi版)
对于已经有的组件,可以直接添加进来,添加后要先运行一下,然后会在工具箱内找到相应控件。
1、首先编写组件,然后将组件添加到工具箱内
编写代码如下:
public partial 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;}}public int ProgressColumIndex{set{progressIndex = value;}get{return progressIndex;}}int progressIndex = -1;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){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;}} }2、调用方法:
private void Form1_Load(object sender, EventArgs e){ListViewItem lviUserName = new ListViewItem();ListViewItem.ListViewSubItem lvsinc = new ListViewItem.ListViewSubItem();ListViewItem.ListViewSubItem lvsihostname = new ListViewItem.ListViewSubItem();ListViewItem.ListViewSubItem lvsiip = new ListViewItem.ListViewSubItem();lviUserName.Text = "5";lvsinc.Text = "4";lvsihostname.Text = "3";lvsiip.Text = "100";lviUserName.SubItems.Add(lvsinc);lviUserName.SubItems.Add(lvsihostname);lviUserName.SubItems.Add(lvsiip);this.listView1.Items.Add(lviUserName);this.listView1.ProgressTextColor = Color.Red;this.listView1.ProgressColor = Color.YellowGreen;}private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e){//设置进度条的ColunIndexthis.listView1.ProgressColumIndex = 1;}private void timer1_Tick(object sender, EventArgs e){if (Convert.ToInt32(listView1.Items[0].SubItems[1].Text.ToString()) <= 100){//进度条数字更新listView1.Items[0].SubItems[1].Text = (Convert.ToInt32(listView1.Items[0].SubItems[1].Text.ToString()) + 1).ToString();}}3、注意要添加Timer控件
相应属性设置如下:
4、运行结果如下所示
以上所述是基于C#实现带进度条的ListView ,希望对大家有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
项目需求:1.PHP+Ajax无刷新带进度条图片上传,2.带进度条。所需插件:jquery.js,jquery.form.js。最近在做一个手机web项目,需要
用node.js实现多文件上传并携带进度条的demo,供大家参考,具体内容如下这个独立封装的需求来自一个朋友公司,他说需要写一个带进度条动画的批量上传文件的组件
最近项目中要做一个带进度条的上传文件的功能,学习了Ajax,使用起来比较方便,将几个方法实现就行。前端引入文件Ajax进度条异步处理$(function(){$
有些App在点击下载按钮的时候,可以在按钮上显示进度,我们可以通过继承原生Button,重写onDraw来实现带进度条的按钮。Github:https://gi
初识进度条ProgressBar软件:AndroidStudio实现:1.点击按钮,进度条隐藏;再次点击,进度条出现。循环2.点击按钮,水平进度条进度呈现并+1