【VS2008_C#_Winform】如何实现拖拽控件(图片)_解决后追分
想在窗体内实现鼠标拖拽一个控件(图片),拖拽时图片跟随鼠标移动,原图片不消失,位置不改变,拖拽到目的位置,释放鼠标左键,就在新位置生成一个新控件(图片),不知道表达的是否...
想在窗体内实现鼠标拖拽一个控件(图片),拖拽时图片跟随鼠标移动,原图片不消失,位置不改变,拖拽到目的位置,释放鼠标左键,就在新位置生成一个新控件(图片),不知道表达的是否清楚,详细可看我上传的图片
要实现的效果类似VS2008里,向窗体里面拖拽一个Button按钮那样。
小弟先谢谢各位大虾了,解决了问题追分必须的~
. 展开
要实现的效果类似VS2008里,向窗体里面拖拽一个Button按钮那样。
小弟先谢谢各位大虾了,解决了问题追分必须的~
. 展开
2个回答
展开全部
private Point mouse_offset;
private void label1_MouseDown(object o, MouseEventArgs e)
{
mouse_offset = new Point(-e.X, -e.Y);//
}
private void label1_MouseMove(object o, MouseEventArgs e)
{
((Control)o).Cursor = Cursors.Arrow;//设置拖动时鼠标箭头
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);//设置偏移
((Control)o).Location = ((Control)o).Parent.PointToClient(mousePos);
}
}
这个是拖拽label的例子 PictureBox也是一样的原理 注意边框的宽度
private void label1_MouseDown(object o, MouseEventArgs e)
{
mouse_offset = new Point(-e.X, -e.Y);//
}
private void label1_MouseMove(object o, MouseEventArgs e)
{
((Control)o).Cursor = Cursors.Arrow;//设置拖动时鼠标箭头
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);//设置偏移
((Control)o).Location = ((Control)o).Parent.PointToClient(mousePos);
}
}
这个是拖拽label的例子 PictureBox也是一样的原理 注意边框的宽度
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询