C#中移动无边框窗体
为了美观,自己用Panel做了一个标题栏,如下图白色的上边栏,直接贴代码
/// <summary> /// 鼠标左键按下 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void panel3_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { isMouseDown = true; FormLocation = this.Location; mouseOffset = Control.MousePosition; } } /// <summary> /// 鼠标移动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void panel3_MouseMove(object sender, MouseEventArgs e) { int x = 0; int y = 0; if (isMouseDown) { Point pt = Control.MousePosition; x = mouseOffset.X - pt.X; y = mouseOffset.Y - pt.Y; this.Location = new Point(FormLocation.X - x, FormLocation.Y - y); } } /// <summary> /// 鼠标左键松开 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void panel3_MouseUp(object sender, MouseEventArgs e) { isMouseDown = false;//全局变量防止鼠标没有按下左键窗体也跟着移动 }