找了好长时间没找到,后来索性自己写了一个:

首先,在往listview加载数据的事件里添加progressbar:

            foreach (string d in arr)
{
int index = lv.Items.Count + ;
item = new ListViewItem(new string[] { index.ToString(), d, "", "", "", "" });
lv.Items.Add(item); float progress = ; Rectangle SizeR = default(Rectangle);
System.Windows.Forms.ProgressBar ProgBar = new System.Windows.Forms.ProgressBar();
SizeR = item.SubItems[].Bounds;
SizeR.Width = lv.Columns[].Width;
ProgBar.Parent = lv;
ProgBar.SetBounds(SizeR.X, SizeR.Y, SizeR.Width, SizeR.Height);
ProgBar.Value = (int)progress;
ProgBar.Visible = true;
//取一个唯一的名字,以后好找
ProgBar.Name = d + "progressbar";
}

然后在需要修改progressbar的值的地方设置它的值:

//循环listview上的所有控件,按名字找到progressbar
foreach (Control item in lv.Controls)
{
if (item.Name == d.Name + "progressbar")
{
ProgressBar bar = (ProgressBar)item;
bar.Value = (int)((d.Progress) * );
}
}

其实我们只是把progressbar根据长宽高固定在了listview指定的格子里,如果我们拖动listview中的列,格子的位置会发生改变,这时候需要修改对应proressbar的位置,我们需要添加ColumnWidthChanging事件,在拖动column的时候,progressbar会随着改变位置:

        private void lvt_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
{ Rectangle SizeR = default(Rectangle); int width = e.NewWidth; foreach (Control item in lv.Controls)
{
//根据名字找到所有的progressbar
if (item.Name.IndexOf("progressbar") >= )
{
ProgressBar bar = (ProgressBar)item; //Rectangle size=bar.Bounds;
SizeR=bar.Bounds;
//lv.Columns[2]是放置progressbar的地方
SizeR.Width=lv.Columns[].Width;
bar.SetBounds(lv.Items[].SubItems[].Bounds.X, SizeR.Y, SizeR.Width, SizeR.Height);
//bar.Width = width;
}
}
}

最新文章

  1. <转>VPN技术原理
  2. QQ,MSN,Skype在线客服代码
  3. Java中常用的内存区域
  4. Struts2的Action中如何操作作用域对象
  5. Netty4.x中文教程系列(三) ChannelHandler
  6. ThinkPHP3.2 常量参考
  7. 并查集专辑 (poj1182食物链,hdu3038, poj1733, poj1984, zoj3261)
  8. HBase 在HDFS上的物理目录结构
  9. LINQ to Entities 不识别方法“System.DateTime AddDays(Double)
  10. Shell egrep
  11. django 多线程下载图片
  12. CRM 2013 批量更新two options的缺省值
  13. 使用dstat命令的插件查看mysql的io状态
  14. 【C#】非常重要的泛型
  15. svn-经常遇到问题解答办法积累(一)
  16. 为 GlusterFS 设计新的xlator (编译及调用过程分析)
  17. [Asp.net]缓存之页面缓存,控件缓存,缓存依赖
  18. pom resource配置
  19. 原生js常用方法
  20. IOS控件:长度单位换算(UITextField,IBAction,委托事件touchesBegan)

热门文章

  1. Linux_cloudera-scm-agent: unrecognized service
  2. 遍历元素绑定事件时作用域是怎么回事啊,为什么要用this关键字,而直接使用元素本身就不行?
  3. [SQL注入3]from_sqli_to_shell_II
  4. CreateFile FileSeek FileRead 直接读取数据
  5. ViewConfiguration滑动参数设置类
  6. vsftpd,tftp安装配置
  7. 2015第25周三iframe小结
  8. MSSQL 标准PROC 写法
  9. 【剑指offer】面试题24:二叉搜索树的后序遍历序列
  10. lesson5:利用jmeter来压测消息队列(activemq)