之前在论坛查询无边框,不显示控制框的的窗口操作(主要是移动问题)时
发现论坛中关于这方面的内容案例都不是开发板的程序,无法查看。于是自己研究
了一下,现在把自己的成果心得分享给大家。
移动:
首先要将窗口显示控制框属性设置为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
通过以上知识就可以对窗口做一些个性话的设计,设计出更加美观,灵活的窗口,
并且代码也不复杂。