winfrom 动态添加控件,以及删除

  private void btnadd_Click(object sender, EventArgs e)
        {
            int fileCount = 0;
            foreach (Control c in this.flowLayoutPanel1.Controls)
            {
                if (c is TextBox)
                {
                    ++fileCount;
                }
            }
            if (fileCount >= 4)
            {
                MessageBox.Show("最多添加5张图!");
                return;
            }
            string controlMark = Guid.NewGuid().ToString();
            TextBox t1 = new TextBox();
            t1.Name = "txt_" + controlMark;
            t1.Click += new EventHandler(btnClickEvent);
            t1.Width = 300;
            flowLayoutPanel1.Controls.Add(t1);
 
            Button btnDel = new Button();
            btnDel.Name = "del_" + controlMark;
            btnDel.Text = "删除";
            btnDel.Click += new EventHandler(delFileControl);
            flowLayoutPanel1.Controls.Add(btnDel);
        }
///点击删除按钮删除生成的控件         public void delFileControl(object sender, EventArgs e)         {             Button btnAction = sender as Button;             string id = btnAction.Name.Split('_')[1];             foreach (Control c in this.flowLayoutPanel1.Controls)             {                 if (c.Name == "txt_" + id)                 {                     flowLayoutPanel1.Controls.Remove(c);                 }             }             foreach (Control c in this.flowLayoutPanel1.Controls)             {                 if (c.Name == "del_" + id)                 {                     flowLayoutPanel1.Controls.Remove(c);                 }             }             pictureBox1.Image = null;         }         public void btnClickEvent(object sender, EventArgs e)         {             pictureBox1.Image = null;             TextBox txtAction = sender as TextBox;             OpenFileDialog openFileDialogTemp = new OpenFileDialog();             DialogResult dr = openFileDialogTemp.ShowDialog();             if (dr == DialogResult.OK)             {                 string id = txtAction.Name.Split('_')[1];                 foreach (Control c in this.flowLayoutPanel1.Controls)                 {                     if (c.Name == "txt_" + id)                     {                         c.Text = openFileDialogTemp.FileName;                         pictureBox1.Image = Image.FromFile(openFileDialogTemp.FileName);                     }                 }             }         }

///保存
 foreach (Control c in this.flowLayoutPanel1.Controls)
                    {
                        if (c is TextBox)
                        {
                            if (File.Exists(c.Text.Trim()))
                            {
                                string time = DateTime.Now.ToString("yyyy-MM");
                                if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + @"File" + time + @""))
                                {
                                    Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"File" + time + @"");
                                }
                                string FileName = time + @"" + Guid.NewGuid().ToString() + ".jpg";
                                string tempFileName = AppDomain.CurrentDomain.BaseDirectory + @"File" + FileName;
                                File.Copy(c.Text.Trim(), tempFileName);
                            }
                        }
 
                    }
原文地址:https://www.cnblogs.com/ft-Pavilion/p/5642545.html