Foxtable(狐表)用户栏目专家坐堂 → [分享]关于无边框窗口的操作


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

主题:[分享]关于无边框窗口的操作

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


加好友 发短信
等级:幼狐 帖子:108 积分:810 威望:0 精华:0 注册:2017/4/6 15:45:00
[分享]关于无边框窗口的操作  发帖心情 Post By:2018/1/4 11:57:00 [只看该作者]

       之前在论坛查询无边框,不显示控制框的的窗口操作(主要是移动问题)时

发现论坛中关于这方面的内容案例都不是开发板的程序,无法查看。于是自己研究

了一下,现在把自己的成果心得分享给大家。
移动:
    首先要将窗口显示控制框属性设置为FALSE,然后增加两个texbox控件用于存

储按下鼠标左键后的坐标。需要注意的是,要想移动窗口,鼠标按下的位置一定要

有控件,不能是空白,不明白为什么。所以根据实际情况可以使用一个面板(若需

要点击窗口任意位置移动窗口,可以将面板的停靠属性设置为fill,也可以放在

特定位置)来让我们移动窗口。
在窗口的afterload事件中取消边框:
e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None

在MouseDown事件中获取鼠标位置:
If e.Button = MouseButtons.Left Then
    e.Form.Controls("x").value = e.X
    e.Form.Controls("y").value = e.Y
End If

在MouseMove事件中计算鼠标相对移动的位置然后调整窗口
If e.Button = MouseButtons.Left Then
    Dim sx As Integer = e.Form.Controls("x").value
    Dim sy As Integer = e.Form.Controls("y").value
    e.Form.baseform.left = e.Form.baseform.left + e.X - sx
    e.Form.baseform.top = e.Form.baseform.Top + e.y - sy
End If

最大化
e.Form.BaseForm.WindowState = 2

最小化
e.Form.BaseForm.WindowState = 1

还原
e.Form.BaseForm.WindowState = 0

通过以上知识就可以对窗口做一些个性话的设计,设计出更加美观,灵活的窗口,
并且代码也不复杂。


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


加好友 发短信
等级:幼狐 帖子:108 积分:810 威望:0 精华:0 注册:2017/4/6 15:45:00
  发帖心情 Post By:2018/1/4 12:01:00 [只看该作者]

自己顶,狐狸爸爸求加精

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


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

以下是引用wh123在2018/1/4 11:57:00的发言:

 
【发现论坛中关于这方面的内容案例都不是开发板的程序,无法查看】

 

如果你有开发版加密狗,你可以安装一个商业版,然后直接打开使用的。


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


加好友 发短信
等级:幼狐 帖子:108 积分:810 威望:0 精华:0 注册:2017/4/6 15:45:00
  发帖心情 Post By:2018/1/4 12:34:00 [只看该作者]

还有这种操作,居然不知道

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


加好友 发短信
等级:三尾狐 帖子:788 积分:6297 威望:0 精华:0 注册:2012/6/11 17:21:00
  发帖心情 Post By:2018/10/29 15:01:00 [只看该作者]

学习


 回到顶部