首页 > 代码库 > 输入坐标和输出坐标——图片框上动态加载按钮及响应事件

输入坐标和输出坐标——图片框上动态加载按钮及响应事件

         在实际的项目中总会遇到一些需要动态加载一些控件,并且加载控件的响应事件的代码。现在写一个简单的例子,主要说一下里面的一些关键点:使用鼠标在窗体上的图片框中动态的添加按钮 。动态的去加载事件,肯定是需要使用对象类动态的生成,动态事件,必须要使用委托去实现。还有一个就是“动态”的实现过程,打算鼠标点下去,在鼠标单击的位置添加上按钮。


         环境:Visual Studio 2010, .Net FrameWork 3.5



 private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            Button btn = new Button();
            btn.Size = new System.Drawing.Size(20, 20);
            Point Pointlocation = new Point();            
            //Pointlocation = new Point(e.X, e.Y);
            //输入坐标和输出坐标的转换
            Pointlocation= pictureBox1.PointToClient(new Point(e.X, e.Y));
            Pointlocation.X += pictureBox1.Parent.Location.X;
            Pointlocation.Y += pictureBox1.Parent.Location.Y+32;
            btn.Location = Pointlocation;
            pictureBox1.Controls.Add(btn);
            btn.Click += new EventHandler(delegate{Message();});
        }
        private void Message()
        {
            MessageBox.Show("动态触发事件");
        }

 知识点一:    输入坐标和输出坐标

使用方法PointToClient(point) 将输入坐标转化。如果不转换也就是使用上面的代码会发现,窗体不是全屏的时候

        


输入坐标和输出坐标——图片框上动态加载按钮及响应事件