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);
}
} }
winfrom 动态添加控件,以及删除的更多相关文章
- VC中动态添加控件
VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...
- 怎样在不对控件类型进行硬编码的情况下在 C#vs 中动态添加控件
文章ID: 815780 最近更新: 2004-1-12 这篇文章中的信息适用于: Microsoft Visual C# .NET 2003 标准版 Microsoft Visual C# .NET ...
- JQuery动态添加控件并取值
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- WPF 动态添加控件以及样式字典的引用(Style introduction)
原文:WPF 动态添加控件以及样式字典的引用(Style introduction) 我们想要达到的结果是,绑定多个Checkbox然后我们还可以获取它是否被选中,其实很简单,我们只要找到那几个关键的 ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
- Android 在布局容器中动态添加控件
这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
博客分类: jquery-easyui jQueryAjax框架HTML 现象: AJAX返回的html无法做到自动渲染为EasyUI的样式.比如:class="easyui-layout ...
- asp.net动态添加控件学习
看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页 ...
- WPF:理解ContentControl——动态添加控件和查找控件
WPF:理解ContentControl--动态添加控件和查找控件 我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了.而且控件可以通 ...
随机推荐
- python之面向对象的高级进阶
一 .isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object ...
- jQuery知识总结(转)
原文:http://fwhyy.com/2013/04/jquery-knowledge-summary/ 这篇文章在于筛选器的简单例子,让人一看就懂代码的作用 20170223 前言 jQuery一 ...
- Codeforces 866C Gotta Go Fast - 动态规划 - 概率与期望 - 二分答案
You're trying to set the record on your favorite video game. The game consists of N levels, which mu ...
- SVM学习笔记5-SMO
首先拿出最后要求解的问题:$\underset{\alpha}{min}W(\alpha)=\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\a ...
- .NET BackgroundWorker的一般使用方式
代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data ...
- 终于明白vim 和 grep 中 的正则表达式的用法, vim 正则表达式 和grep基本正则表达式 几乎一样
要搞清楚 vim中的正则和普通的Perl正则表达式的区别: 因为在perl中所有的元字符 都可以直接使用, 不需要在 元字符的前面加 反斜杠. 但是在vim, 包括grep中就有所区别, 同样是元字符 ...
- 【原理、应用】Quartz集群原理及配置应用
一.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: 强大的 ...
- Spring核心简介
Spring简介 Spring是一个开源.轻量级框架.在诞生之初,创建Spring的主要目的是用来替代更加重量级的企业级Java技术,尤其是EJB(Enterprise JavaBean).从最初的挑 ...
- android 控件获取 获取焦点
控件.setEnabled(true);控件.setFocusable(true);控件.setFocusableInTouchMode(true);控件.requestFocus();控件.requ ...
- HDU 6155 Subsequence Count(矩阵乘法+线段树+基础DP)
题意 给定一个长度为 \(n\) 的 \(01\) 串,完成 \(m\) 种操作--操作分两种翻转 \([l,r]\) 区间中的元素.求区间 \([l,r]\) 有多少个不同的子序列. \(1 \le ...