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的名称

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

  • 相关阅读:
    消息队列非阻塞
    外挂简介
    mfc小工具开发之定时闹钟之---二十四小时时区和时间段
    mfc小工具开发之定时闹钟之---时间获取和音频播放
    mfc小工具开发之定时闹钟之---多线程急线程同步
    mfc小工具开发之定时闹钟之---功能介绍
    8127 timeout!!! 搞死人啊
    RGB565 转换 BMP24
    linux 格式化u盘
    linq分页扩展(转)
  • 原文地址:https://www.cnblogs.com/xiaoye207/p/1500278.html
Copyright © 2011-2022 走看看