c# 实现窗体拖到屏幕边缘自动隐藏

来源:互联网 发布:淘宝注册账号网站 编辑:程序博客网 时间:2024/05/20 16:11

private void hide_Load(object sender, EventArgs e)  
{  
    System.Windows.Forms.Timer StopRectTimer = new System.Windows.Forms.Timer();  
    StopRectTimer.Tick += new EventHandler(timer1_Tick);  
    StopRectTimer.Interval = 100;  
    StopRectTimer.Enabled = true;  
}  
private void timer1_Tick(object sender, EventArgs e)  
{  
    if (this.Bounds.Contains(Cursor.Position))  
    {  
        switch (this.StopAanhor)  
        {  
            case AnchorStyles.Top:  
                this.Location = new Point(this.Location.X, 0);  
                break;  
            case AnchorStyles.Left:  
                this.Location = new Point(0, this.Location.Y);  
                break;  
            case AnchorStyles.Right:  
                this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - this.Width, this.Location.Y);  
                break;  
        }  
    }  
    else 
    {  
        switch (this.StopAanhor)  
        {  
            case AnchorStyles.Top:  
                this.Location = new Point(this.Location.X, (this.Height - 2) * (-1));  
                break;  
            case AnchorStyles.Left:  
                this.Location = new Point((-1) * (this.Width - 2), this.Location.Y);  
                break;  
            case AnchorStyles.Right:  
                this.Location = new Point(Screen.PrimaryScreen.Bounds.Width - 2, this.Location.Y);  
                break;  
        }  
    }  
}  
internal AnchorStyles StopAanhor = AnchorStyles.None;  
private void mStopAnhor()  
{  
    if (this.Top <= 0)  
    {  
        StopAanhor = AnchorStyles.Top;  
    }  
    else if (this.Left <= 0)  
    {  
        StopAanhor = AnchorStyles.Left;  
    }  
    else if (this.Left >= Screen.PrimaryScreen.Bounds.Width - this.Width)  
    {  
        StopAanhor = AnchorStyles.Right;  
    }  
    else 
    {  
        StopAanhor = AnchorStyles.None;  
    }  
}  
private void hide_LocationChanged(object sender, EventArgs e)  
{  
    this.mStopAnhor();  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cbq926/archive/2009/02/01/3856519.aspx