WinForm 窗体属性FormBorderStyle设置为none怎么让窗口可以移动

为了界面的好看,有时候需要将窗体FormBorderStyle属性设为None,这样就可以根据自己的喜欢来设计界面。但这样窗体无法进行移动的。这个时候我们就可以运用下面这些代码进行编写,让窗体可以移动

前提条件:我们先把FormBorderStyle属性设置为none

WinForm 窗体属性FormBorderStyle设置为none怎么让窗口可以移动_第1张图片

然后我们进行下述步骤

1.首先我们先将下面这段代码调用到代码之中去

bool isMouseDown = false; // 窗体是否移动
Point currentFormLocation = new Point(); //当前窗体位置
Point currentMouseOffset = new Point(); //当前鼠标的按下位置

2.给窗体设置鼠标按下时的操作

private void Xiangmu_zhuye_MouseDown(object sender, MouseEventArgs e)
{
     if (e.Button == MouseButtons.Left)
          {
              isMouseDown = true;
              currentFormLocation = this.Location;
              currentMouseOffset = Control.MousePosition;
          }
}

3.给窗体设置鼠标移动时的操作

private void Xiangmu_zhuye_MouseMove(object sender, MouseEventArgs e)
{
            int rangeX = 0, rangeY = 0; //计算当前鼠标光标的位移,让窗体进行相同大小的位移
                 if (isMouseDown)
                     {
                         Point pt = Control.MousePosition;
                         rangeX = currentMouseOffset.X - pt.X;
                         rangeY = currentMouseOffset.Y - pt.Y;
  this.Location = new Point(currentFormLocation.X - rangeX,currentFormLocation.Y - rangeY);
                     }
}

4.给窗体设置鼠标松开时的操作

private void Xiangmu_zhuye_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false; // 停止移动
        }

然后我们通过以上代码,编写执行完之后,我们刚开始想要实现的结果就可以实现了

效果如下图:

WinForm 窗体属性FormBorderStyle设置为none怎么让窗口可以移动_第2张图片

这是本人第一次发布,有不细心不得当之处,欢迎私信我,我会及时改正,希望本章对各位大佬们有所帮助

你可能感兴趣的:(c#,c#,winform)