[.Net码农].NET运行界面上,实现随意拖动控件的方法

来源:互联网 发布:社会网络有哪些 编辑:程序博客网 时间:2024/05/28 16:30

http://www.jb51.net/article/34775.htm


.NET运行界面上,实现随意拖动控件的方法,需要的朋友可以参考一下
复制代码 代码如下:


using System.Windows.Forms;namespace WinFormsApp_DragControls{    public class DragControl    {        //待拖动的控件        private Control m_Control;        //鼠标按下时的x,y坐标        private int m_X;        private int m_Y;        public DragControl(Control control)        {            m_Control = control;            m_Control.MouseDown += new MouseEventHandler(control_MouseDown);            m_Control.MouseMove += new MouseEventHandler(contro_MouseMove);        }        private void control_MouseDown(object sender, MouseEventArgs e)        {            m_X = e.X;            m_Y = e.Y;        }        private void contro_MouseMove(object sender, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                int x = e.X - m_X;                int y = e.Y - m_Y;                this.m_Control.Left += x;                this.m_Control.Top += y;            }        }    }}

调用:

DragControl obj1 = new DragControl(button1);
则表示在运行的界面上,支持随意拖动button1


另外还可以进一步实现改变控件大小、GDI+实现加边界脚点、保存控件的位置到xml下次可以读取(布局)以及自动布局N个Control的算法等












0 0