zoukankan      html  css  js  c++  java
  • 窗体在屏幕边缘隐藏

      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;
                    }
                }
            }
  • 相关阅读:
    python Flask基础使用
    安装docker以及常规操作
    关于InfiniBand几个基本知识点解释
    RDMA技术解析
    C++学习之 类
    C++学习 内存模型和名称空间
    C++基础知识(3)
    C++基础知识(2)
    C++基础知识(1)
    Java基础知识
  • 原文地址:https://www.cnblogs.com/skyhorseyk/p/9680930.html
Copyright © 2011-2022 走看看