.NET winform 在listview中添加progressbar
找了好长时间没找到,后来索性自己写了一个:
首先,在往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;
}
}
}
.NET winform 在listview中添加progressbar的更多相关文章
- Android 如何在 ListView 中更新 ProgressBar 进度
=======================ListView原理============================== Android 的 ListView 的原理打个简单的比喻就是: 演员演 ...
- 往另外1个ListView中添加当前选中的项目
//往另外1个ListView中添加当前选中的项目 function AddSelItems(listview1:TListView;ListView2:TListView):Boolean; ...
- winform实现listview中combox
一.概要 因为要在项目中要在ListView中实现下拉框选择,用DataGrid的话,一个不美观,二个绑定数据麻烦,参考网上一种做法,就是单击ListView时,判断单击的区域,然后将Combox控件 ...
- WPF: 在ListView中添加Checkbox列表
描述:ListView是WPF中动态绑定工具的数据容器,本文实现了一个在ListView中显示的供用户选择的列表项目,并且控制列表中选择的项目数量,即实现单选. XAML中创建ListView,代码如 ...
- winfrom如何在listview中添加控件
private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewIte ...
- Delphi - 在ListView中添加一个进度条
// 相关定义 Type TListData = Record FileName: String; Percent: Integer; End; PListData = ^TListData; // ...
- ListView中添加ScrollView只显示一两行的问题
将ListView改为继承NoScrollListView package com.example.brtz.widget; import android.content.Context; impor ...
- Android ListView中添加不同的多种布局
最近做项目要使用ListView加载不同的布局,由于自己写的代码不能贴出,故找了一篇自认为比较好的blog给分享出来,希望对用到此项技术的同学有点帮助. http://logc.at/2011/10/ ...
- 在ListView中添加EditText丢失光标问题解决
<ListView android:id="@android:id/list" android:layout_height="fill_parent& ...
随机推荐
- MATLAB 常用形态学操作函数
常用形态学操作函数(转自:http://blog.sina.com.cn/s/blog_4c52e9e20100e5if.html) 1.dilate函数 该函数能够实现二值图像的膨胀操作,有以下形式 ...
- gcc编译时头文件库文件搜索顺序(转)
原文: http://blog.csdn.net/silentfly1987/article/details/6119195
- Node开发入门
介绍 Node.js采用google的V8虚拟机来解释和执行javascript,也就是允许脱离浏览器环境运行javascript代码. Hello World 婴儿说的第一个字一般是"妈& ...
- 算法导论(第三版)Problems2(归并插入排序、数列逆序计算)
讨论内容不说明,仅提供相应的程序. 2.1:归并插入排序θ(nlgn) void mergeInsertionSort(int a[], int l, int r, int k) { int m; & ...
- 使用MapReduce将HDFS数据导入到HBase(二)
package com.bank.service; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.conf. ...
- HDU 3264 Open-air shopping malls (计算几何-圆相交面积)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3264 题意:给你n个圆,坐标和半径,然后要在这n个圆的圆心画一个大圆,大圆与这n个圆相交的面积必须大于等 ...
- 多次绑定click及ajax提交常用方法
<script> $(document).ready(function() { //绑定click $(".exchange_ecv").bind("clic ...
- 随记,C#修饰符访问级别
private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. (无修饰符时默认)internal: 在同一命名空间内可以访问.public : ...
- (转)在Android的webview中定制js的alert,confirm和prompt对话框的方法
1.首先继承android.webkit.WebChromeClient实现MyWebChromeClient. 2.在MyWebChromeClient.java中覆盖onJsAlert,onJsC ...
- Javascript:数组和字符串的相互转化
中午吃饭的时候,和室友讨论前端的问题,然后一个有趣的问题被抛出来: javascript用什么方法可以把“hello world”位置反转输出,即输出:"dlrow olleh"? ...