日期:2014-05-18  浏览次数:20818 次

c#窗体边界小问题
我做了一个悬浮窗类似于迅雷
 用窗体做的 然后可以拖动。
 问题就是,我不想让它拖到屏幕最上面,最左边,最下面,最右边,因为那样就看不到了
 谁可以帮我解决啊?
 不明白我的意思的,可以问我。我详细说。

------解决方案--------------------
简单点的话,一个timer,判断你的窗体位置,如果到了边界,那么就修改成能看到的位置
------解决方案--------------------
Mdi悬浮窗体不超过子窗体边界
http://www.cnblogs.com/ghypnus/archive/2012/03/22/2411226.html
------解决方案--------------------
探讨
在拖动事件DragDrop里处理,超出边界就设置成能看到的新位置。

------解决方案--------------------
在拖动事件中获取屏幕坐标p1和鼠标坐标p2

根据p1和p2判断 假设窗体为win

如果p2.x<=10则win.left=0;
如果p2.x>p1.x-10则 win.left=p1.x-win.width;
...

思路大概就是这样!1