国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現帶進度條的ListView

2020-01-24 01:16:51
字體:
來源:轉載
供稿:網友

推薦閱讀: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 ,希望對大家有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六盘水市| 无锡市| 集贤县| 池州市| 华阴市| 辽宁省| 万州区| 夏津县| 上高县| 忻州市| 庆元县| 甘孜| 瑞丽市| 化州市| 运城市| 道孚县| 修水县| 龙川县| 昭通市| 岗巴县| 湟中县| 固阳县| 广德县| 永定县| 郧西县| 张家界市| 丰都县| 砀山县| 兰西县| 宝清县| 晋州市| 曲沃县| 天祝| 陇川县| 仙居县| 水城县| 丰镇市| 台前县| 石泉县| 如皋市| 莆田市|