经常进行图形界面设计的编程者肯定知道,控件在设计的时候才能随意拖动,运行的时候就不能拖动了.
你肯定会问:运行时能随意拖动控件吗?答案是肯定的,我们的项目涉及到了这一点,我已经实现了,实际上很简单的哟.我就拿出来给你们show一下,哈哈,各位高手不要笑我哟.
我们先从简单的入手,一步一步的来吧:
首先,新建一个Form1,拖进去一个label1,text为:鼠标拖动控件练习.接下来就是为它注册事件了,这里我们注册的是label1_MouseUp,label1_MouseDown两个事件.在实现注册事件的代码前要先定义一个Point对象(全局),
private Point mouse_offset;
用来记录鼠标位置,以便平移鼠标位置.
下面是label1_MouseDown的代码:
private void label1_MouseDown(object sender, MouseEventArgs e)
{
mouse_offset = new Point(-e.X, -e.Y);
}
来源:(http://blog.sina.com.cn/s/blog_4a1f2422010004hm.html) - C#创建可以随意拖动的控件_wade_新浪博客
是不是非常easy哟.
下面是label1_MouseUp的代码:
private void label1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);