C#无边框窗体实现以及拖动代码

实现效果:

代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace NoBorderForm
{
public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();
  }
  
  private void Form1_Load(object sender, EventArgs e)
  {
    
  }

  Point mouseOff;//鼠标移动位置变量
  bool leftFlag;//标记是否为左键
  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;
    }
  }

  private void button1_Click(object sender, EventArgs e)
  {
    DialogResult dr = MessageBox.Show("yes/no", "exit", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
    if (dr == DialogResult.Yes)
    {
      this.Close();
    }
    else
    {
      return;
    }
  }

  private void button2_Click(object sender, EventArgs e)
  {
    this.WindowState = FormWindowState.Minimized;
  }

  private void checkBox1_CheckedChanged(object sender, EventArgs e)
  {

  }

  private void Form1_Click(object sender, EventArgs e)
  {

  }

  private void panel1_Click(object sender, EventArgs e)
  {
    
  }

  private void textBox1_Click(object sender, EventArgs e)
  {
    
  }

  private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  {
    System.Diagnostics.Process.Start("http://www.baidu.com");
  }

  private void button4_Click(object sender, EventArgs e)
  {
    
  }
}
}

我们先来看下运行效果图Form1.cs代码:using System;using System.Collections.Generic;using System.ComponentModel;u ...