就是把QQ拖到显示器顶端QQ就隐藏了,鼠标指上去就出现了。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
              
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                if (WindowState != FormWindowState.Minimized)
                {
                    int ScreenWidth = Screen.PrimaryScreen.WorkingArea.Width;  //屏幕宽度 
                    int ScreenRight = Screen.PrimaryScreen.WorkingArea.Right; //屏幕高度 
                    int MouseX = Control.MousePosition.X; //鼠标X位置 
                    int MouseY = Control.MousePosition.Y;//鼠标垂直位置 
                    if (this.Left < 0 && this.Top < 0)
                    {
                        this.Left = 0;
                        this.Top = 1;
                    }
                    if (this.Left >= ScreenWidth - this.Right && this.Top < 0) //如果自己的左边是否在屏幕的边缘 
                    {
                        this.Left = ScreenWidth;
                        this.Top = 0;
                    }
                    if (this.Top < 0 && MouseX > this.Left && MouseX < this.Left + this.Width && MouseY < 3)
                    {
                        this.Top = 0;
                    }
                    if (this.Top <= 0 && this.Left > 0 && this.Left < ScreenWidth - this.Width)
                    {
                        if (MouseX < this.Left || MouseX > this.Left + this.Width || MouseY > this.Top + this.Right)
                        {
                            this.Top = 3 - this.Right;
                        }
                    }
                    if (this.Left < 0 && MouseY > this.Top && MouseY < this.Top + this.Width && MouseX < 3)
                    {
                        this.Left = 0;
                    }
                    if (this.Left <= 0 && this.Top > 0 && this.Top < ScreenRight - this.Right)
                    {
                        if (MouseY < this.Top || MouseY > this.Top + this.Right || MouseX > this.Width)
                        {
                            this.Left = 3 - this.Width;
                        }
                    }
                    if (this.Left >= ScreenWidth - this.Width && this.Top > 0 && this.Top < ScreenRight - this.Width)
                    {
                        if (MouseY < this.Top || MouseY > this.Top + this.Right || MouseX < ScreenWidth - this.Width)
                        {
                            this.Left = ScreenWidth - 3;
                        }
                    }                if (this.Left > ScreenWidth - 5) //判断自己的左边是否隐藏了 
                    {
                        if (MouseX > ScreenWidth - 5)  //如果隐藏了  判断鼠标是不在屏幕的边缘 
                        {
                            this.Left = ScreenWidth - this.Width;
                        }
                    }
                } 
            }    }
    }
      

  2.   

    黎哥,偶是你忠实的fans,悉心接受您的教诲
      

  3.   


    //或者使用一个panel来实现,panel的宽度和QQ的宽度一样,高度设置5px左右,启动是隐藏panel,显示QQ框,当鼠标经过时,也是一样,鼠标移开时,显示panel,并且悬挂在屏幕顶端,隐藏qq框。。 public partial class Form3 : Form
        {
            int height = 0;
            bool IsX = false; //是否悬浮
            public Form3()
            {
                InitializeComponent();
                panel1.Visible = false; 
                height = this.Height;
            }
            private void timer1_Tick(object sender, EventArgs e)
            {
                Point p = MousePosition;
                if ((p.X < Left || p.X > Left + Width || p.Y > Height) && (Top <= 0)) //如果鼠标不在窗体上,并且窗体上边距小于等于0的话。则悬浮
                {
                    IsX = true;
                }
                else
                {
                    IsX = false;
                }
                SetForm();
            }        /// <summary>
            /// 设置窗体是否悬浮
            /// </summary>
            private void SetForm()
            {
                if (IsX)
                {
                    Top = 0;
                    this.Height = panel1.Height;
                    this.FormBorderStyle = FormBorderStyle.None;
                    panel1.Visible = true;
                }
                else
                {
                    panel1.Visible = false;
                    FormBorderStyle = FormBorderStyle.Sizable;
                    Height = height;
                }
            }
      

  4.   

    有源代码吗?求
    [email protected]多谢啊。