C#初学界面参考小程序

C#初学界面参考小程序

  请18岁以上的转载请注明出处和作者,尊重别人的劳动成果C#初学界面参考小程序
 
小软件下载地址:C#初学界面参考小程序
为了方便新学者,请下载项目学习:(下载要给文章个赞哦!)C#初学界面参考小程序
博客:C#初学界面参考小程序

      1、具有单开线程下载文件,速度不会受影响C#初学界面参考小程序
2、软件小、占资源小,运行简单实用 C#初学界面参考小程序
3、所有基本功能完善,如果有好建议的功能,可指出 C#初学界面参考小程序
4、运行图如下: C#初学界面参考小程序
C#初学界面参考小程序




一、界面1设计与代码 C#初学界面参考小程序
C#初学界面参考小程序

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;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Threading;

namespace HttpDownTest
{
      public partial class Form1 : Form
      {
            public Form1()//初始化,自动生成的
            {
                  InitializeComponent();
            }

            private String save_path = "";//保存路径
            private String download_path = "";//下载路径
            private String type = "";
            private Thread thread;//线程
            private int pause = 0;//暂停变量
            private int stop = 0;//停止变量
            private int OKOK = 0;
            private void button1_Click(object sender, EventArgs e)//主要函数
            {
                  OKOK = 1;
                  if (pause == 1)
                  {
                        textBox2.Text = "暂停中!";
                  }
                  else
                  {
                        thread = new Thread(start);//线程对象,下句是线程开始
                        thread.Start();
                  }
            }

            private void start()//开始函数
            {
                  if (textBox1.Text == "")
                  {
                        textBox2.Text = "下载地址为空!";
                        textBox1.Text = " http://dl.wenku.baidu.com/wenku21";   //这里写你默认的下载地址
                        return;
                  }

                  if (textBox3.Text == "")
                  {
                        textBox2.Text = "保存地址为空!";
                        textBox3.Text = "C:\\Users\\dl201507213\\Desktop\\";
                        return;
                  }

                  if (textBox5.Text == "")
                  {
                        textBox2.Text = "保存名字为空!";
                        textBox5.Text = "test";
                        return;
                  }

                  if (textBox6.Text == "")
                  {
                        textBox2.Text = "保存类型为空!";
                        textBox6.Text = "ppt";
                        return;
                  }

                  if (radioButton1.Checked)
                  {
                        type = ".jpg";
                  }
                  else if (radioButton2.Checked)
                  {
                        type = ".docx";
                  }
                  else if (radioButton3.Checked)
                  {
                        type = ".txt";
                  }
                  else
                  {
                        type = "." + textBox6.Text;
                  }

                  save_path = textBox3.Text + textBox5.Text + type;
                  download_path = textBox1.Text;
                  textBox2.Text = "";//上面三句是路径设置

                  System.Net.HttpWebRequest httpWebRequest = null;
                  try
                  {
                        //url获取远程文件流。。。
                        httpWebRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(download_path);

                        System.Net.HttpWebResponse httpWebResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse();
                        System.IO.Stream sr = httpWebResponse.GetResponseStream();

                        //创建本地文件写入流。。。
                        System.IO.Stream sw = new System.IO.FileStream(save_path, System.IO.FileMode.Create);

                        long totalDownloadedByte = 0;
                        byte[] by = new byte[102400];//每次读入100K

                        Stopwatch watch = new Stopwatch();
                        watch.Start();//上面两句是用来算时间的

                        int osize = sr.Read(by, 0, (int)by.Length);
                        while ((osize > 0) && (stop == 0))
                        {
                              while ((osize > 0) && (pause == 0) && (stop == 0))
                              {                                                     
                                    textBox7.Text = Convert.ToString(totalDownloadedByte/1024);
                                    totalDownloadedByte = osize + totalDownloadedByte;
                                    sw.Write(by, 0, osize);//下载
                                    osize = sr.Read(by, 0, (int)by.Length);//记取内容缓冲
                                    
                                    System.Threading.Thread.Sleep(1);
                                    textBox4.Text = (Convert.ToString(osize/1024) + " KB/s");      //速度显示
                              }
                              System.Threading.Thread.Sleep(100);
                        }

                        watch.Stop();
                        textBox8.Text = Convert.ToString(watch.ElapsedMilliseconds/1000)+ " s";//算出耗时

                        sw.Close();
                        sr.Close();
                        if (stop == 1)
                        {
                              stop = 0;
                              pause = 0;
                              textBox2.Text = "停止下载!";
                              button4.Text = "暂停";
                        }
                        else 
                        { 
                              textBox2.Text = "下载成功!"; 
                        }                                      
                  }
                  catch (System.Exception)
                  {
                        if (httpWebRequest != null)
                              httpWebRequest.Abort();
                        textBox2.Text = "下载失败!";
                        thread.Abort();
                  }

                  thread.Abort();//关闭线程
            }

            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                  download_path = textBox1.Text;
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                  DateTime current_time = new DateTime();
                  current_time = DateTime.Now;
                  label3.Text = Convert.ToString(current_time);//获得当前系统时间
            }

            private void button2_Click(object sender, EventArgs e)
            {
                  FolderBrowserDialog select_save_path = new FolderBrowserDialog();
                  select_save_path.ShowNewFolderButton = true;//这个用于是否可以新建文件夹

                  select_save_path.Description = "请选择保存路径";
                  select_save_path.ShowDialog();//用默认的对话框。。。

                  textBox3.Text = select_save_path.SelectedPath + "\\";
            }

            private void button4_Click(object sender, EventArgs e)
            {
                  if (pause == 1)
                  {
                        pause = 0;
                        button4.Text = "暂停";
                  }
                  else if (pause == 0)
                  {
                        button4.Text = "继续";
                        pause = 1;
                  }
                  return;
            }

            private void button3_Click(object sender, EventArgs e)
            {
                  Form2 f = new Form2();
                  f.Show();//显示作者信息
            }

            private void button5_Click(object sender, EventArgs e)
            {
                  if (stop == 0) { stop = 1; }
                  else { stop = 0; button5.Text = "停止下载"; }        
            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                  if (OKOK == 1)
                  {
                        thread.Abort();
                        Application.Exit();//关闭右上角的X的时候的处理办法,关闭所以线程
                  }                       
            }
      }
}
 
二、界面2设计与代码 C#初学界面参考小程序
C#初学界面参考小程序
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 HttpDownTest
{
      public partial class Form2 : Form
      {
            public Form2()
            {
                  InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                  this.Close();//关闭当前窗口
            }
      }
}
// 可以到文章上面下载事情项目运行,方便学习,记得给个赞哦!亲C#初学界面参考小程序C#初学界面参考小程序C#初学界面参考小程序
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值