窗体在屏幕边缘隐藏
private void timer2_Tick(object sender, EventArgs e) { timer1.Interval = 200; AutoSideHideOrShow(); } void AutoSideHideOrShow() { int sideThickness = 4;//边缘的厚度,窗体停靠在边缘隐藏后留出来的可见部分的厚度 //如果窗体最小化或最大化了则什么也不做 if (this.WindowState == FormWindowState.Minimized || this.WindowState == FormWindowState.Maximized) { return; } //如果鼠标在窗体内 if (Cursor.Position.X >= this.Left && Cursor.Position.X < this.Right && Cursor.Position.Y >= this.Top && Cursor.Position.Y < this.Bottom) { //如果窗体离屏幕边缘很近,则自动停靠在该边缘 if (this.Top <= sideThickness) { this.Top = 0; } if (this.Left <= sideThickness) { this.Left = 0; } if (this.Left >= Screen.PrimaryScreen.WorkingArea.Width - this.Width - sideThickness) { this.Left = Screen.PrimaryScreen.WorkingArea.Width - this.Width; } } //当鼠标离开窗体以后 else { //隐藏到屏幕左边缘 if (this.Left == 0) { this.Left = sideThickness - this.Width; } //隐藏到屏幕右边缘 else if (this.Left == Screen.PrimaryScreen.WorkingArea.Width - this.Width) { this.Left = Screen.PrimaryScreen.WorkingArea.Width - sideThickness; } //隐藏到屏幕上边缘 else if (this.Top == 0 && this.Left > 0 && this.Left < Screen.PrimaryScreen.WorkingArea.Width - this.Width) { this.Top = sideThickness - this.Height; } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步