c# 类似于千千静听的桌面停靠程序

c# 类似于千千静听的桌面停靠程序

下面是程序源代码,如有转载,请保留作者信息,谢谢。

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 LIKETTPlaryer
{  
    /// <summary>
    /// 类似于千千静听的桌面停靠程序
    /// 作者:abrahu
    /// 时间:2008-11-07
    /// 如有转载,请保留此项
    /// </summary>
    public partial class Form1 : Form
    {       
        Point p;
        int SCREEN_WIDTH;
        int SCREEN_HEIGHT;
        int BIND;//设置停靠容差

        public Form1()
        {
            InitializeComponent();
           
            Rectangle screen = Screen.GetWorkingArea(this);
            SCREEN_WIDTH = screen.Width;
            SCREEN_HEIGHT = screen.Height;           
            BIND = 20;
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            p.X = e.X; p.Y = e.Y;
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)           
            {
                int POS_X=this.Left;
                int POS_Y=this.Top;
                int POS_WIDTH=this.Width;
                int POS_HEIGHT=this.Height;
                int MOUSE_MOVE_BIND_X = e.X - p.X;
                int MOUSE_MOVE_BIND_Y = e.Y - p.Y;
                if (POS_X <= BIND && POS_X >= -1*BIND)//停靠在左边
                {
                    this.Left = 0;
                    if (Math.Abs(MOUSE_MOVE_BIND_X) > BIND)
                    {
                        this.Left = POS_X + MOUSE_MOVE_BIND_X;
                        this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
                    }
                }
                if (POS_X >= SCREEN_WIDTH - BIND - POS_WIDTH && POS_X <= SCREEN_WIDTH + BIND - POS_WIDTH)//停靠在右边
                {
                    this.Left = SCREEN_WIDTH - POS_WIDTH;
                    if (Math.Abs(MOUSE_MOVE_BIND_X) > BIND)
                    {
                        this.Left = POS_X + MOUSE_MOVE_BIND_X;
                        this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
                    }
                }
                if (POS_Y <= BIND && POS_Y >= -1 * BIND)//停靠在上边
                {
                    this.Top = 0;
                    if (Math.Abs(MOUSE_MOVE_BIND_Y) > BIND)
                    {
                        this.Left = POS_X + MOUSE_MOVE_BIND_X;
                        this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
                    }
                }
                if (POS_Y >= SCREEN_HEIGHT - BIND - POS_HEIGHT && POS_Y <= SCREEN_HEIGHT + BIND - POS_HEIGHT)//停靠在下边
                {
                    this.Top = SCREEN_HEIGHT - POS_HEIGHT;
                    if (Math.Abs(MOUSE_MOVE_BIND_Y) > BIND)
                    {
                        this.Left = POS_X + MOUSE_MOVE_BIND_X;
                        this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
                    }
                }
                if ((POS_X > BIND && POS_X < SCREEN_WIDTH - BIND - POS_WIDTH && POS_Y > BIND && POS_Y < SCREEN_HEIGHT - BIND - POS_HEIGHT) || POS_X < -1 * BIND || POS_X > SCREEN_WIDTH + BIND - POS_WIDTH || POS_Y > SCREEN_HEIGHT + BIND - POS_HEIGHT || POS_Y < -1 * BIND)
                {
                     this.Left = POS_X + MOUSE_MOVE_BIND_X;
                     this.Top = POS_Y + MOUSE_MOVE_BIND_Y;
                }
               
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值