要求:左侧三个按钮,点击按钮会出现相应的文字信息和下载图标,实现下载文件的功能(实现模拟下载功能,被下载的文件存储在本地)。
先看到三个按钮的位置:
因为在这里是三个按钮轮流切换,所以在后台写了一个方法:
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; } }
下载功能就做完啦。