using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WinShowDown
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}
private void btnDown_Click(object sender, EventArgs e)
{
DownloadFile("http://localhost:1928/WebServer/downloader/123.rar", @"C:\123.rar", progressBar1, label1);
}
/// <summary>
/// c#,.net 下载文件
/// </summary>
/// <param name="URL">下载文件地址</param>
///
/// <param name="Filename">下载后的存放地址</param>
/// <param name="Prog">用于显示的进度条</param>
///
public void DownloadFile(string URL, string filename, System.Windows.Forms.ProgressBar prog, System.Windows.Forms.Label label1)
{
float percent = 0;
try
{
System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
long totalBytes = myrp.ContentLength;
if (prog != null)
{
prog.Maximum = (int)totalBytes;
}
System.IO.Stream st = myrp.GetResponseStream();
System.IO.Stream so = new System.IO.FileStream(filename, System.IO.FileMode.Create);
long totalDownloadedByte = 0;
byte[] by = new byte[1024];
int osize = st.Read(by, 0, (int)by.Length);
while (osize > 0)
{
totalDownloadedByte = osize + totalDownloadedByte;
System.Windows.Forms.Application.DoEvents();
so.Write(by, 0, osize);
if (prog != null)
{
prog.Value = (int)totalDownloadedByte;
}
osize = st.Read(by, 0, (int)by.Length);
percent = (float)totalDownloadedByte / (float)totalBytes * 100;
label1.Text = "当前补丁下载进度" + percent.ToString() + "%";
System.Windows.Forms.Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息
}
so.Close();
st.Close();
}
catch (System.Exception)
{
throw;
}
}
}
}
相关推荐
在C# WinForm应用开发中,为下载和上传文件实现进度条显示是一项...通过以上步骤,我们就能在VS2010的C# WinForm应用中成功实现文件下载上传并显示进度条的功能。这不仅提升了应用的交互性,也增强了用户的使用体验。
总结,C# Winform下载文件并显示进度条的实现代码是通过结合HttpWebRequest、HttpWebResponse、FileStream、ProgressBar和Label等控件,利用循环读取和写入数据来实时更新进度条和标签信息。这种方法对于需要在...
以上就是关于"C# WinForm下载上传文件显示进度条"这个主题的主要知识点。通过实践这些技术,你可以创建一个功能完备且用户友好的文件操作界面。在项目中,`WindowsApplication2.sln`是解决方案文件,`Windows...
c# winform 自定义实现 优美的进度条包含百分比
首先,你需要在Winform应用中创建一个用户界面,可以包含一个按钮,用于触发文件下载,以及可能的进度条或状态指示器来显示下载进度。以下是一个简单的UI设计示例: ```csharp private void InitializeComponent() ...
在C# Winform应用开发中,进度条控件(ProgressBar)是用户界面中不可或缺的一部分,它为用户提供关于长时间运行操作的进度反馈。本教程将详细讲解如何在Winform应用程序中创建一个带有进度显示的进度条。 首先,让...
本文将深入探讨如何实现一个自定义的条形方格进度条,包括横置和竖置两种显示方式,并允许用户自定义底色、进度颜色、是否显示进度值以及字体大小。这个控件是基于GDI+图形接口进行绘制的,具有高度的灵活性和可定制...
在C# WinForm开发中,有时我们需要执行耗时的操作,如读取大量数据或上传下载文件,这时为了提供用户友好的界面体验,我们会使用进度条(ProgressBar)来展示任务的执行进度。本教程将详细讲解如何利用...
在C# WinForm应用开发中,多线程和进度条的使用是常见的需求,尤其是在执行耗时操作如文件上传、下载或大数据处理时,为了不阻塞用户界面(UI),我们通常会创建一个后台线程来执行这些任务,同时通过进度条实时反馈...
在C# Winform开发中,有时我们需要执行耗时的操作,如读取大量数据或上传文件。在这种情况下,为用户提供一个进度条(ProgressBar)是很有帮助的,它可以让用户知道程序正在运行并显示任务的进度。本教程将详细介绍...
在C# WinForm应用开发中,创建一个带有进度条的文件复制功能,可以极大地提升用户体验,使其类似于Windows操作系统中的文件复制界面。这个功能涉及到多个关键知识点,包括文件操作、线程处理、进度条控制以及用户...
在本文中,我们将深入探讨如何使用C#和WinForm创建并美化进度条控件。进度条控件在软件开发中非常常见,它用于显示任务执行的进度,为用户提供直观的反馈。C#作为.NET框架的主要编程语言,提供了丰富的UI控件,其中...
在C# WinForm应用开发中,自定义控件可以极大地扩展UI的表现力和功能。本项目专注于创建两种特殊的进度条控件:圆形进度条和环形进度条,这些控件适用于展示任务或进程的进度,视觉效果独特,能吸引用户注意力。通过...
在C# WinForm应用开发中,进度条是一个非常常见的组件,用于向用户显示某个操作的进度,提升用户体验。本文将详细讲解如何在WinForm中创建和使用弹出式进度条。 首先,我们需要了解C# WinForm的基本结构。WinForm是...
在C# Winform开发中,有时我们希望对系统的标准控件进行自定义...通过学习和实践这个"C# Winform 自定义进度条ProgressBar"的示例,开发者可以更好地理解Winform控件的绘制原理,并为自己的项目增添更多的个性化元素。
在C# WinForm开发中,有时我们希望创建更具有视觉吸引力和独特性的用户界面元素,圆形进度条就是其中一种。本教程将详细讲解如何利用C#和GDI+技术实现一个改良版的圆形进度条,它不仅展示了进度,还能够在进度条内部...
通常,进度条是用来显示某个任务的完成进度,如文件下载、数据处理等。在Windows Forms(Winform)环境中,系统自带的`ProgressBar`控件默认是水平显示的。然而,`VerticalProgressBar`控件通过重绘和自定义渲染过程...
在本文中,我们将深入探讨如何使用C# Winform来实现基于局域网的文件传输功能。这个Demo项目主要依赖于TCP(Transmission Control Protocol)协议,它是一种面向连接、可靠的网络通信协议,常用于数据的可靠传输。让...
在C# WinForm应用开发中,多线程和进度条的使用是常见的需求,尤其是在执行耗时操作如文件读写、网络请求等时,为了不阻塞用户界面,我们会使用多线程技术。同时,为了提供用户体验,我们通常会通过进度条来显示任务...