Advertisement

动态排布拖动子组件 动态排布拖动子组件

阅读量:

【在WinForm窗体中,实现控件(以Button控件为例)的位移操作可通过调用DoDragDrop方法完成。

  1. 为需要移动的控件绑定MouseDown与MouseMove事件,用以判断是否真正触发移动动作,从而避免不必要的误触操作。

Point downLoc; // 定义变量,用于存储鼠标按下时控件的位置

private void button_MouseDown(object sender, MouseEventArgs e)

{

downLoc = new Point(e.X, e.Y);

}

private void button_MouseMove(object sender, MouseEventArgs e)

{

if (e.Button == MouseButtons.Left && (Math.Abs(e.X - downLoc.X) > 5 || Math.Abs(e.Y - downLoc.Y) > 5)) // 判断鼠标左键是否按下且位移超过5个单位

{

Button button = sender as Button;

button.DoDragDrop(button, DragDropEffects.All); // 启动拖拽操作

}

}

  1. 在WinForm界面中实现控件的移动功能需借助DragEnter和Drag

全部评论 (0)

还没有任何评论哟~