您的位置:首页 > 编程语言 > C#

C# 窗体靠近屏幕边缘自动隐藏*学习(类似于QQ)

2012-05-02 22:17 579 查看
using System;

using System.Collections.Generic;

using System.Drawing;

using System.Windows.Forms;

using System.ComponentModel;

using System.Data;

namespace WinHide

{

public partial class MainForm : Form

{

public MainForm()

{

InitializeComponent();

}

#region 窗体隐藏部分

void Timer1Tick(object sender, EventArgs e)

{

if(this.Bounds.Contains(Cursor.Position))

{

switch(this.StopAnhor)

{

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.StopAnhor)

{

case AnchorStyles.Top:

this.Location = new Point(this.Location.X,(this.Height-4)*(-1));

break;

case AnchorStyles.Left:

this.Location = new Point((this.Width-4)*(-1),this.Location.Y);

break;

case AnchorStyles.Right:

this.Location = new Point(Screen.PrimaryScreen.Bounds.Width-4,this.Location.Y);

break;

}

}

}

internal AnchorStyles StopAnhor = AnchorStyles.None;

private void mStopAnhor()

{

if(this.Top <= 0)

{

StopAnhor = AnchorStyles.Top;

}

else if(this.Left <= 0)

{

StopAnhor = AnchorStyles.Left;

}

else if(this.Right >= Screen.PrimaryScreen.Bounds.Width)

{

StopAnhor = AnchorStyles.Right;

}

else

{

StopAnhor = AnchorStyles.None;

}

}

void MainFormLocationChanged(object sender, EventArgs e)

{

this.mStopAnhor();

}

#endregion

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: