首页 > Windows开发 > 详细

【Reproduce】 C#中实现拖动无边框Form窗体

时间:2016-07-28 14:07:01      阅读:197      评论:0      收藏:0      [点我收藏+]
首先建一个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;
 }
}
}

 

【Reproduce】 C#中实现拖动无边框Form窗体

原文:http://www.cnblogs.com/hardsoftware/p/5714427.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!