C# 窗体靠近屏幕边缘自动隐藏*学习(类似于QQ)
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
}