zoukankan      html  css  js  c++  java
  • 动态生成picturebox并响应其Click事件

         为了解决panel上绘制image时没有滚动条的问题,将绘制image改为动态生成多个PictureBox控件,原来判断Click是根据点击的位置,现在使用控件如何响应,网上也有相同问题的解答如下:

        事件通过公用的函数来实现的,使picturebox的Click+=new EventHandler(pic_Click);
    设置PictureBox的Name,响应事件中把参数sender转化为PictureBox类型,然后得到其Name等,就可以判断哪个控件被Click了

            private int count = 0;
            private void CreatePictureBox(Control parent, string imgfile, int x, int y, int w, int h)
            {
                PictureBox pic = new PictureBox();
                pic.Location = new Point(x, y);     //
    设定位置
                pic.Size = new Size( w, h);         //
    设定宽高
                pic.Name = imgfile + count;         //
    用图文件名称加流水号当作控件的名称
                pic.Image = new Bitmap(imgfile);    //
    读取图文件,显示在pictureBox
                pic.Parent = parent;                //
    设定控件的的Parent,功能类似this.Controls.Add(pictureBox1);
                pic.Click += new EventHandler(pic_Click); //
    设定所有的PictureBox的Click事件都呼叫相同的事件函数
            }
           
            /// <summary>
            ///
    这个是PictureBox.Click的事件函式,
            ///
    所有动态产生的PictureBox在Click的时候,都会呼叫此事件
            /// </summary>
            /// <param name="sender">
    代表目前click的pictureBox对象</param>
            /// <param name="e"></param>
            void pic_Click(object sender, EventArgs e)
            {
                //
    将sender转型成PictureBox
                PictureBox pic = sender as PictureBox;
               
                if (null == pic) return;

                string name = pic.Name; // 取出pictureBox的名称

                // 以下就你读取到的名称去处理你要做的事情
            }

  • 相关阅读:
    HTML5新特性之文件和二进制数据的操作
    HTML5本地存储之IndexedDB
    HTML5新标签之Canvas
    HTML5 Canvas实战之烟花效果
    Asp.NET core/net 5接口返回实体含有long/int64的属性序列后最后几位变为0的解决
    Aero for WTL application
    C++WTL基于MCI的音频播放器源码
    c++ 深拷贝,浅拷贝,赋值操作的调用情况
    发布一个生成按钮图片的工具 c#写的
    贴图:CImage VS Bitmap
  • 原文地址:https://www.cnblogs.com/xiaoye207/p/1500278.html
Copyright © 2011-2022 走看看