以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [分享]关于无边框窗口的操作 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=112864) |
-- 作者:wh123 -- 发布时间: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 -- 发布时间:2018/1/4 12:01:00 -- 自己顶,狐狸爸爸求加精 |
-- 作者:有点甜 -- 发布时间:2018/1/4 12:19:00 -- 以下是引用wh123在2018/1/4 11:57:00的发言:
【发现论坛中关于这方面的内容案例都不是开发板的程序,无法查看】
如果你有开发版加密狗,你可以安装一个商业版,然后直接打开使用的。 |
-- 作者:wh123 -- 发布时间:2018/1/4 12:34:00 -- 还有这种操作,居然不知道 |
-- 作者:良才 -- 发布时间:2018/10/29 15:01:00 -- 学习 |