已解决。参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=82977&replyID=&skin=1
=====================
1、设置二个全局变量用于记录 该控件按下时的左上角坐标
Vars("CtrlX")
Vars("CtrlY")
2、在窗口mouseDown事件中记录下按下时的控件坐标:
If e.Button = MouseButtons.Left Then
If e.Sender.Name.StartsWith("Panel") Then
Vars("CtrlX") = e.X
Vars("CtrlY") = e.Y
end if
end if
3、在窗口mouseMove事件中实现对这个控件的移动
If e.Button = MouseButtons.Left Then
If e.Sender.Name.StartsWith("Panel") Then
e.Sender.Left += e.x - Vars("CtrlX")
e.Sender.top += e.y - Vars("CtrlY")
end if
end if
4、如果移动后的控件要显示在最上层,在mouseDown事件中再添加以下代码
Dim pn As WinForm.Panel
pn = e.Form.Controls(e.sender.Name)
pn.TopMost = True
5、注意:其中引用的控件"Panel",是大小写敏感的,所以必须用大写的"P",我之前使用了"panel"无论如何都实现不了移动。
================
感谢前人的付出,所以我乐意再次小结如上,给各位需要的朋友。
[此贴子已经被作者于2021/5/21 13:40:31编辑过]