Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1527252
  • 博文数量: 329
  • 博客积分: 2773
  • 博客等级: 少校
  • 技术积分: 4219
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:17
个人简介

淡定从容,宁静致远

文章分类

全部博文(329)

文章存档

2016年(4)

2015年(50)

2014年(68)

2013年(45)

2012年(162)

分类: WINDOWS

2015-04-15 09:58:16


拖动无边框窗体Form至桌面任何位置

首先建一个Windows应用程序

将Form1的 FormBorderStyle属性设置为Noe

主要是在Form1窗体触发三个事件:Form4_MouseDown,Form4_MouseMove,Form4_MouseUp

代码如下:

     

public partial class Form1 : Form
    {
        Point mouseOff;                          //鼠标移动位置变量
        bool leftFlag;                               //标签是否为左键

        public Form1()
        {
            InitializeComponent();

        }

//用代码设置窗体的起始位置

private void Form_Load(object sender, System.EventArgs e) 

     this.Left=(int)((Screen.PrimaryScreen.Bounds.Width-this.Width)/2); 
     this.Top=(int)((Screen.PrimaryScreen.Bounds.Height-this.Height)/2); 
}

 

       private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                              //点击左键按下时标注为true;
            } 
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }

    }

阅读(4970) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~