C#WinForm自定义控件自动停靠

       简单原理:主要是用Timer控件,在实时判断当前鼠标焦点位置,如果在自定义控件上时,自定义控件显现;鼠标焦点离开自定义控件范围后,自定义控件隐藏。这样的考虑是用户体验会更好,比通过保留一定的像素长度判断鼠标位置展现好,同时实现简单。

 

       首先定义一个Timer控件

            this.StopRectTimer.Enabled = true;
            this.StopRectTimer.Interval = 700;
            this.StopRectTimer.Tick += new System.EventHandler(this._Tick_panel_bar);


       _Tick_panel_bar的实现如下所示

        private void _Tick_panel_bar(object sender, System.EventArgs e)
        {
            if (this.panel_bar.Bounds.Contains(Cursor.Position))
            {
                this.panel_bar.Visible = true;
            }
            else
            {
                this.panel_bar.Visible = false;
            }
        }


       最后是通过控制计时器的开始和停止来实现是否隐藏自定义控件

StopRectTimer.Start();

你可能感兴趣的:(timer,object)