很疑惑的问题~~动态显示进度~~ c#

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:56:52
在winform里面复制文件~~我是这样实现的

在一个方法(逻辑层)里面
方法(progressBar bar)
{
循环文件个数,然后复制,每复制一个
vs2005的控件progressBar 执行 sBar.PerformStep();
progressBar最大值是文件个数~~
}

在button1的单击事件下执行这个方法,方法的参数就是progressBar

我现在有个疑问就是怎么让窗体上的label上面能动态显示正在复制的文件名?

求各位帮帮忙,在这里谢谢了~~
还有就是在vs中连接oracle,用那种连接方式不用在机子上安装oracle客户端?

当然是远程,本地的直接用那个System.Data.OracleClint就行

//下面提供三种方案,第一种方法简单也能够满足你的基本要求,建议用多线程异步操作,那样会获得更好的性能,及用户体验,不用多线程时,像下面的程序,界面在复制状态下会出现“假死”现象。
第二和第三种自己下去研究,异步方法需要自己查点资料,我写的简单,也不完整,但能完成你的功能,异步机制,自己下去多查点资料,编程很有用的,特别对IO操作。

=============普通方案===================
private void button1_Click(object sender, EventArgs e)
{
DirectoryInfo dir = Directory.CreateDirectory("C:\\a");
DirectoryInfo dir2 = Directory.CreateDirectory("C:\\b");
FileOperator fileOperator = new FileOperator();
FileInfo[] files=dir.GetFiles();
this.progressBar1.Maximum = files.Length;
this.progressBar1.Step = 1;
foreach(FileInfo file in files )
{
this.label1.Text = "正在复制:" + file.FullName;
this.label1.Refresh();
fileOperator.CopyFile(file.FullName, dir2.FullName + "\\" + file.Name);