Foxtable(狐表)用户栏目专家坐堂 → [求助]关于拖动窗口的问题


  共有1554人关注过本帖树形打印复制链接

主题:[求助]关于拖动窗口的问题

帅哥哟,离线,有人找我吗?
DrSun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:65 积分:575 威望:0 精华:0 注册:2017/3/1 11:24:00
[求助]关于拖动窗口的问题  发帖心情 Post By:2017/9/14 17:30:00 [只看该作者]

本人开发中想弄一个点击窗口某个位置(或一个按钮)后拖到,能够拖动窗口的效果(即不通过控制框来拖动窗口),请问各位老师,有什么好的实现方法?
[此贴子已经被作者于2017/9/14 20:12:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/14 19:08:00 [只看该作者]

 

[此贴子已经被作者于2017/9/14 19:08:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/14 19:12:00 [只看该作者]

mousedown

 

If e.Button = MouseButtons.Left Then
     vars("x") = e.X+ e.Form.BaseForm.left
     vars("y") = e.Y+e.Form.BaseForm.Top
End If

 

mousemove

 

If e.Button = MouseButtons.Left Then
    e.Form.BaseForm.left += e.x - vars("x")
    e.Form.BaseForm.Top += e.y - vars("y")
End If


 回到顶部
帅哥哟,离线,有人找我吗?
DrSun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:65 积分:575 威望:0 精华:0 注册:2017/3/1 11:24:00
回复  发帖心情 Post By:2017/9/14 20:31:00 [只看该作者]

感谢您给我提供的思路,我调整了一下,效果达到了:

MouseMove:
If e.Sender.Name <> "拖动按钮" Then
    Return
End If

If e.Button = MouseButtons.Left Then
    e.Form.BaseForm.left = e.Form.BaseForm.left + e.X - e.Form.Controls("X").Value
    e.Form.BaseForm.Top = e.Form.BaseForm.Top + e.Y - e.Form.Controls("Y").Value
End If


MouseDown:
If e.Sender.Name <> "拖动按钮" Then
    Return
End If

If e.Button = MouseButtons.Left Then
     e.Form.Controls("X").Value = e.X
     e.Form.Controls("Y").Value = e.Y
End If



[此贴子已经被作者于2017/9/14 20:32:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/14 20:38:00 [只看该作者]

 你可以直接把代码写到【拖动按钮】控件的事件去。

 回到顶部
帅哥哟,离线,有人找我吗?
DrSun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:65 积分:575 威望:0 精华:0 注册:2017/3/1 11:24:00
回复  发帖心情 Post By:2017/9/14 20:44:00 [只看该作者]

好的,这样更方便了

 回到顶部