2、代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
namespace WebClientUpload
{
public partial class Form3 : Form
{
WebClient c;
public Form3()
{
InitializeComponent();
c = new System.Net.WebClient();
c.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(c_DownloadProgressChanged);
c.DownloadFileCompleted += new AsyncCompletedEventHandler(c_DownloadFileCompleted);
c.Proxy = WebRequest.DefaultWebProxy;
//c.Proxy.Credentials = new NetworkCredential("admin", "admin_password", "domain");
}
void c_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("ok");
this.Close();
}
private void btnDownload_Click(object sender, EventArgs e)
{
}
void c_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
this.label1.Text = "已完成:" + progressBar1.Value.ToString()+"%";
}
private void btnQuit_Click(object sender, EventArgs e)
{
}
private void Form3_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//上传文件
c.DownloadFileAsync(new Uri("d:\\download\\阿甘正传.rm"), @"e:\11.rm");
}
private void button2_Click(object sender, EventArgs e)
{
//取消上传
if (c != null)
{
c.CancelAsync();
}
Close();
}
}
}
附:另种进度条控制方案:
Form1调用 Form2(进度条窗体)
Form2 pj = new Form2();
pj.Show();
//开始处理大量耗时工作
string sor = "";
int j = 100000;
for (int i = 0; i < j; i++)
{
sor += i.ToString();
if (i % (j / 100) == 0)
{
pj.progressBar1.Value++;
pj.label2.Text = "已完成:" + string.Format("{0:p}", (double)pj.progressBar1.Value / 100);
Application.DoEvents();
}
}
//工作完成,关闭进度条窗体
pj.Close();
分享到:
相关推荐
本篇将详细介绍如何使用WebClient下载文件并同时显示进度条。 首先,我们需要了解WebClient类的基本用法。WebClient类提供了DownloadData、DownloadFile等方法来下载数据或文件。例如,下载文件到指定路径可以使用...
在C# WinForm应用开发中,为下载和上传文件实现进度条显示是一项常见的需求,它提供了用户友好的界面,让使用者能清晰地看到文件传输的状态。在这个场景中,VS2010作为集成开发环境(IDE)被用作编写代码的工具。...
在C#编程中,WebClient类提供了一种简单的方式来实现文件下载。WebClient是一个高度封装的网络通信类,主要用于HTTP协议交互,包括上传和下载数据。以下是对标题和描述中涉及知识点的详细解释: 1. **WebClient下载...
在C# Web开发中,实现一个网页进度条通常涉及到客户端与服务器端的交互,用于向用户展示后台处理任务的进度。这种功能在大数据传输、文件上传或长时间运行的任务中非常常见,可以提供更好的用户体验。本教程将详细...
本压缩包"‘C#批量上传 进度条(包括各种上传例子)’"提供了多种上传方式的示例,包括单文件上传和批量文件上传,并且都带有进度条显示,旨在帮助开发者快速理解和实现这些功能。以下是关于这些知识点的详细介绍: ...
在这个"C#通过WebClient下载demo"中,我们将深入探讨如何使用`WebClient`来实现文件的下载,并关注如何在下载过程中显示进度。 `WebClient`类位于`System.Net`命名空间下,它提供了异步和同步方法来处理网络请求。...
在C#编程中,创建一个带有下载进度条和标签提示的功能是提高用户体验的重要方式,特别是在进行大文件下载时。WebClient类是.NET框架中用于处理HTTP请求的一个方便工具,包括文件下载。在这个场景中,我们将扩展...
本程序就主要是通过C# 中的WebClient 类实现对文件的下载功能,其中涉及到进度条,对下载成功与下载失败都会给出相应的提示,本程序是通过VS 2005 开发的,希望给需要在项目中用到下载这个功能的人有所帮助!...
在C# WinForm应用开发中,为下载和上传文件实现进度条显示是一项常见的需求,它能够提供用户友好的界面体验,让使用者了解操作的实时状态。本项目标题和描述所涉及的知识点主要涵盖以下几个方面: 1. **WinForm控件...
这个主题主要涉及了三个方面:C#文件下载、datagridview控件的使用以及如何在datagridview中添加进度条来显示下载进度。下面我们将逐一深入探讨这些知识点。 1. **C# 文件下载** 在C#中,文件下载可以通过多种方式...
标题中的"大文件上传c#源码带进度条"指的是一个C#实现的程序,能够支持大文件的分块上传,并且在上传过程中显示进度条,为用户提供直观的反馈。 在大文件上传中,常见的技术挑战包括文件的切片、断点续传和多线程...
- 对于文件上传和下载,可以监听数据传输的进度事件,如`WebClient.ProgressChanged`或`HttpClient.SendAsync`的进度回调,更新进度条的值。 6. **下载速度计算**: - 计算下载速度通常需要记录开始时间和已下载...
"C#带进度条下载更新升级组件(V1.1源码)"是一个专门用于实现这一目的的程序模块,它允许开发者集成到自己的应用中,以提供一个带有可视化进度条的更新下载体验。 这个组件的核心功能包括: 1. **检查更新**:组件...
总结来说,C# WinForm中的文件下载和上传显示进度条涉及到的关键点有:使用WebClient类进行文件操作,设置和更新ProgressBar控件,以及正确处理文件操作的开始、结束和进度变化事件。通过理解并实践这些知识点,...
在描述中提到的问题是,当尝试下载文件时,`e.TotalBytesToReceive`总是返回-1,这表明无法获取文件的总大小,因此无法显示准确的下载进度。为了解决这个问题,我们需要在FTP请求中设置`UseBinary`属性为`true`,...
在C#编程中,开发一个具有进度条功能的文件上传模块是常见的需求,尤其是在处理大文件时,用户界面的反馈显得尤为重要。进度条可以提供视觉上的提示,让用户了解上传过程的状态,增强用户体验。本篇文章将深入探讨...
在C#编程中,文件下载是一项常见的任务,特别是在Web应用中。为了实现文件下载并同时显示进度条,我们可以结合HTTP处理程序(.ashx)和ASP.NET Web Forms(如FileDownload.aspx)来创建一个功能完整的解决方案。以下...
在C# Winform环境下开发文件下载功能,主要是利用.NET Framework提供的System.Net命名空间中的WebClient类。这个类为开发者提供了一种简单的方式来处理HTTP、FTP等网络协议的交互,包括下载文件。本篇将深入探讨如何...
本示例关注的是在WinForm应用程序中实现文件上传,并且在上传过程中显示进度条,同时通过一般处理程序(ASHX)在服务器端接收文件并处理传递的参数。以下是关于这个主题的详细知识点: 1. **WinForm控件**: - **...
这个项目很可能就是一个演示如何在C#或VB.NET中实现文件下载并显示进度条的例子。 实现一个这样的实例,通常会包含以下步骤: 1. 创建后台线程负责文件下载,使用WebClient或HttpClient类发送HTTP请求,并在接收到...