最近做东西需要用到这个,网上找了一下有不少人实现了,比如这位兄弟
http://blog.csdn.net/mngzilin/article/details/5549119
但是有个问题,子窗体无法脱离父窗体独立运动,所以自己重写了一个,初步试了一下,效果挺不错的
可以改进,加入吸附桌面边缘等功能
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Windows.Forms;
namespace TinyBook
{
public enum MagneticLocation
{
Left = 0,
Right = 1,
Top = 2,
Bottom = 3
}
public enum MagneticState
{
Adsorbent, // 吸附
Separation // 分离
}
public class MagneticManager
{
public class ChildFormInfo
{
public Form Child { get; set; }
public MagneticLocation Location { get; set; }
public MagneticState State { get; set; }
public bool CutstomSetLocation { get; set; }
}
public int Step { get; set; }
private Form m_mainForm = null;
private List<ChildFormInfo> m_childs= new List<ChildFormInfo>();
public MagneticManager(Form form)
{
m_mainForm = form;
form.LocationChanged += MainForm_LocationChanged;
form.SizeChanged += MainForm_SizeChanged;
form.FormClosed += MainForm_FormClosed;
Step = 20;
}
public void addChild(Form childForm, MagneticLocation loc)
{

本文介绍如何使用C#编程实现磁性窗体功能,包括窗体的吸附、剥离及自由移动。针对网上现有实现的不足,作者重写了代码,使得子窗体能够脱离父窗体独立移动,并提出了可扩展性,如增加吸附桌面边缘等特性。
&spm=1001.2101.3001.5002&articleId=47860521&d=1&t=3&u=b485cafca47144498ef3a3ac376531f3)
1577

被折叠的 条评论
为什么被折叠?



