C# 实现模拟下载功能,被下载的文件存储在本地

要求:左侧三个按钮,点击按钮会出现相应的文字信息和下载图标,实现下载文件的功能(实现模拟下载功能,被下载的文件存储在本地)。

先看到三个按钮的位置:

因为在这里是三个按钮轮流切换,所以在后台写了一个方法:

 public void AddInfo(string LabelContext, int i)
        {
            string ImagePath = Environment.CurrentDirectory;//获取当前工作目录的完全路径
            Label lb = new Label();
            lb.AutoSize = true;//控件跟着文字的大小进行变化
            lb.Location = new System.Drawing.Point(0, i);//控件的位置
            lb.Text = LabelContext;//显示的文字
            Button btn = new Button();
            btn.Height = 25;//高度
            btn.Width = 25;//宽度
            btn.Tag = LabelContext;
            //拉姆达表达式,+= 是在委托链上增加一个委托,(s, e) => 是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是 => 后面的部分。
            btn.Click += (sender, e) =>
            {
                SaveFileDialog ofd = new SaveFileDialog();//提示用户选择文件的保存位置
                ofd.FileName = LabelContext;//被保存的文件的名字
                if (ofd.ShowDialog() == DialogResult.OK)//意思是当按下ok键执行下列操作
                {
                    string strFileName = ofd.FileName;
                    File.WriteAllBytes(strFileName, File.ReadAllBytes(ImagePath + "\\PDF\\" + LabelContext));
                    //创建一个新的文件,找到原来的文件把内容复制下来
                    MessageBox.Show("下载成功");
                }
            };
            btn.Location = new System.Drawing.Point(lb.Width * 2 + btn.Width, i);
            btn.BackgroundImage = Image.FromFile(ImagePath + "\\Image\\download.png");
            btn.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;//设置图片适应按钮大小
            panel_right.Controls.Add(lb);
            panel_right.Controls.Add(btn);
        }

然后就要用到这个方法了,在三个按钮的点击事件里面:

private void btn_caw_Click(object sender, EventArgs e)
        {
            panel_right.Controls.Clear();//清空面板,在右边存放的是面板控件
            int y = 0;//纵坐标
            AddInfo("China in the Worldskills.pdf", y);      
        }
 private void btn_cwc_Click(object sender, EventArgs e)
        {
            panel_right.Controls.Clear();
            int y = 0;
            AddInfo("Committee of Worldskills China.pdf", y);
        }
 private void btn_par_Click(object sender, EventArgs e)
        {
            panel_right.Controls.Clear();
            string[] str = new string[] { "the 41st Competition.pdf", "the 42nd Competition.pdf", "the 43rd Competition.pdf" };//数组
            int y = 0;
            for (int i = 0; i < 3; i++)
            {
                AddInfo(str[i], y);//循环三次把数组的值显示出来
                y = y + 30;
            }
        }

下载功能就做完啦。

 

posted @ 2019-03-19 12:54  唛聃  阅读(540)  评论(0编辑  收藏  举报