在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System.ComponentModel 直接使用EgProgressBar方法
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
BackgroundWorker Bw = new BackgroundWorker();
ListView listView1 = new ListView();
public void EgProgressBar()
{
DirectoryInfo di = new DirectoryInfo( @"C:/Windows" );
FileInfo[] fi = di.GetFiles();
progressBar1.Maximum = fi.Length - 1; //设置进度条的最大值
Bw.WorkerSupportsCancellation = true ;
Bw.WorkerReportsProgress = true ;
Bw.DoWork += new DoWorkEventHandler(Add); //绑定事件
Bw.ProgressChanged += new ProgressChangedEventHandler(Progress);
Bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(End);
Bw.RunWorkerAsync();
}
public void Add( object sender, DoWorkEventArgs e)
{
DirectoryInfo di = new DirectoryInfo( @"C:/Windows" );
foreach (FileInfo item in di.GetFiles())
{
ListViewItem lvt = new ListViewItem(); //用listviewItem来存储获取到文件的信息
lvt.Text = item.FullName;
lvt.SubItems.Add(DateTime.Now.ToLongTimeString());
Thread.Sleep(500);
Bw.ReportProgress(listView1.Items.Count, lvt); //把当前的进度报告出去,获取到第几个文件和该文件的信息
}
}
public void Progress( object sender, ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage; //获取第几个文件,用来改变进度条的进度
ListViewItem lv = e.UserState as ListViewItem;
listView1.Items.Add(lv); //把最新获取到的文件信息添加到listview
}
public void End( object sender, RunWorkerCompletedEventArgs e)
{ progressBar1.Value = 0; //进度条清0
}
|
传递方法参数RunWorkerAsync(参数)
获取方法 DoWorkEventArgs 的 e.Argument
结束时判定 Dowork方法 e.result 自动传递到completed 的e.result 中
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论