WinForm动态添加控件及其事件(转)

出处:http://blog.sina.com.cn/s/blog_60d576800100tf61.html

1        private void PhotoForm_Load(object sender, System.EventArgs e)
 2        {
 3            this.LoadPhoto();
 4        }
 5        private void LoadPhoto()
 6        {
 7            int  i= 0;
 8            string url = this.GetUrl();
 9            string[] sFiles = System.IO.Directory.GetFiles(url+"\\images\\small\\","*.*");
10            for(i=0;i<sFiles.Length;i++)
11            {
12                this.ViewPhoto(i,sFiles[i].ToString());
13            }
14        }
15        /// <summary>
16        /// 取项目路径
17        /// </summary>
18        /// <returns></returns>
19        private string GetUrl()
20        {
21            string b = Application.StartupPath;
22            int i = b.LastIndexOf("\\");
23            b = b.Substring(0,i);
24            int j = b.LastIndexOf("\\");
25            b = b.Substring(0,j+1);
26            return b; 
27        }
28        /// <summary>
29        /// 加载图片控件
30        /// </summary>
31        /// <param name="i">图片序号</param>
32        /// <param name="filePath">文件名</param>
33        private void ViewPhoto(int i,string filePath)
34        {
35            string name="";
36            name = "image_"+i.ToString();
37            PictureBox pb = new PictureBox();
38            pb.Name = name;
39            pb.Image=System.Drawing.Image.FromFile(filePath);
40            //保存文件名
41            pb.Tag = filePath;
42            this.Controls.Add(pb);
43            pb.Width=128;
44            pb.Height =96;
45            pb.Location = new Point(x,y);
46            x=x+230;
47            if((i+1)%4==0 && i!=0)
48            {
49                x=100;
50                y=y+120;
51            }
52            //添加事件
53            pb.Click += new System.EventHandler(picture_Click);
54
55        }    
56        private void picture_Click(object sender, System.EventArgs e)
57        {
58            PictureBox pb = (PictureBox)sender;
59            string name = pb.Name;
60            string path = pb.Tag.ToString();
61        }

时间: 2024-10-12 21:44:31

WinForm动态添加控件及其事件(转)的相关文章

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

思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(string extension = Path.GetExtension(fileDialog.FileName).ToLower();),并设置允许后缀文件名: 3,NPOI转datetable,遍历tatetable转成实体类列表并入库: 导出: 1, 创建提示用户保存类,SaveFileDial

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

asp.net动态添加控件学习

看了老师的教程后,自己一点感悟记录下来: 1.在页面提交后,动态生成的控件会丢失, 但如果生成控件的代码在pageload中,就可以,原理是每次生成页面都执行生成. 2.动态按件或页面原来控件, 在页面往返重新生成时, 都有一个特点.就是控件里面的值和状态会保留下来. 如: 在DorpDownList中动态添加了 item项, 在页面往返后, 这个项是保留下来的, 选中值selected也是保留下来的. 在CheckBox中的值,或是动态添加的CheckBox中的值,页面返回后,其中的check

android 在布局中动态添加控件

第一步 Java代码 final LayoutInflater inflater = LayoutInflater.from(this); 第二步:获取需要被添加控件的布局 Java代码 final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01); 第三步:获取需要添加的布局(控件) Java代码 LinearLayout layout = (LinearLayout) inflater.inflate( R

New UI-Java代码动态添加控件或xml布局

New UI-Java代码动态添加控件或xml布局  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://blog.

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

这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉已有的控件 3.使用,来个小demo就明白了 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

C#动态添加控件到窗体不显示

在FormLoad里面添加控件时,用this.Controls.Add()方法向窗体里面动态添加控件,调试,一直不显示,后来发现原来窗体上有一个groupbox覆盖了整个窗体,其实控件已经添加上去了,只是被遮盖了. 后面改为this.groupBox1.Controls.Add(),把控件添加到groupbox里面就不会被遮盖了 1 private void UniqueForm_Load(object sender, EventArgs e) 2 { 3 if (pFlag == 1) 4 {

DevExpress.XtraLayout.LayoutControl 动态添加控件

// Create an item within a specified group,// bound to a specified data field with the specified editorprivate LayoutControlItem CreateItemWithBoundEditor(BaseEdit editor, object dataSource,   string dataMember, LayoutControlGroup parentGroup) {   ed

[WinForm]移除控件某个事件

关键代码: /// <summary> /// 移除控件某个事件 /// </summary> /// <param name="control">控件</param> /// <param name="eventName">需要移除的控件名称eg:EventClick</param> public static void RemoveControlEvent(this Control cont