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);
                            }
                        }                     }

winfrom 动态添加控件,以及删除的更多相关文章

  1. VC中动态添加控件

    VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...

  2. 怎样在不对控件类型进行硬编码的情况下在 C#vs 中动态添加控件

    文章ID: 815780 最近更新: 2004-1-12 这篇文章中的信息适用于: Microsoft Visual C# .NET 2003 标准版 Microsoft Visual C# .NET ...

  3. JQuery动态添加控件并取值

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. WPF 动态添加控件以及样式字典的引用(Style introduction)

    原文:WPF 动态添加控件以及样式字典的引用(Style introduction) 我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的 ...

  5. winform导入导出excel,后台动态添加控件

    思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...

  6. Android 在布局容器中动态添加控件

    这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...

  7. jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法

    博客分类: jquery-easyui jQueryAjax框架HTML  现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...

  8. asp.net动态添加控件学习

    看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页 ...

  9. WPF:理解ContentControl——动态添加控件和查找控件

    WPF:理解ContentControl--动态添加控件和查找控件 我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了.而且控件可以通 ...

随机推荐

  1. P3332 [ZJOI2013]K大数查询(线段树套线段树+标记永久化)

    P3332 [ZJOI2013]K大数查询 权值线段树套区间线段树 把插入的值离散化一下开个线段树 蓝后每个节点开个线段树,维护一下每个数出现的区间和次数 为了防止MLE动态开点就好辣 重点是标记永久 ...

  2. Angular routing生成路由和路由的跳转

    Angular routing生成路由和路由的跳转 什么是路由 路由的目的是可以让根组件按照不同的需求动态加载不同的组件. 根据不同地址,加载不同组件,实现单页面应用. Angular 命令创建一个配 ...

  3. dart基础语法

    .关于 runApp() 上面的实例代码中使用了 runApp() 方法,runApp 方法接收的指定参数类型为 Widget,即: runApp(Widget).在 Flutter 的组件树(wid ...

  4. CodeForces 459C Pashmak and Buses(构造)题解

    题意:n个人,k辆车,要求d天内任意两人都不能一直在同一辆车,能做到给出构造,不能输出-1 思路:我们把某一个人这d天的车号看成一个d位的数字,比如 1 1 2 3代表第一天1号车.第二天1号车.第三 ...

  5. UVALive 7503 Change(乱搞)题解

    题意:你现在有面额为A的纸币,现在需要面额为B的钱(可以是一张也可以是好多张拼成一张),有一台自动售货机,里面有任意价格的商品,售货机兑换出的零钱是随机的(比如找你0.03可能给你0.01+0.01+ ...

  6. Golang初练手-多线程网站路径爆破

    以前用Python写过这个工具,前两天看了golang的基础,就想着用这个语言把这个工具重写一遍 先放张图 用法 Example : Buster.exe -u=https://www.baidu.c ...

  7. (转)awesome-text-summarization

    awesome-text-summarization 2018-07-19 10:45:13 A curated list of resources dedicated to text summari ...

  8. codeforce gym/100495/problem/F Snake++——DFS应用

    emmmm.... 在被新生暴打后,我花了很久才补出这道DFS.由于WA1检查了半天,最后竟然是输出少了一个:   ,心态小崩. 这里普通的dfs算出的连通区域并不能直接当做最后的答案.所以需要类似模 ...

  9. 洛谷P1244 青蛙过河 DP/思路

    又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...

  10. springboot搭建环境整合jsp页面整合mybatis

    1.pom文件依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...