在我以前学习WinForms的时候,用到过使窗体随鼠标的随意移动,
当鼠标在窗体的任意位置按下(指的不是窗体的标题栏),按住鼠标不松手,然后移动鼠标到任意位置,可以实现窗体跟随鼠标移动。
以下是实现这种小效果的简单的C#代码:
//首先设置窗体的FormBorderStyle为None,隐藏标题栏和边框
//这段代码可以实现窗体的双击时自动关闭private Point mouseOffset;
private bool isMouseDown = false; public Form1() { InitializeComponent(); }//鼠标松开时的处理事件
private void Form1_MouseUp(object sender, MouseEventArgs e)
{ if (e.Button == MouseButtons.Left) { isMouseDown = false; } }//鼠标在窗体任意位置按下时的处理事件
private void Form1_MouseDown(object sender, MouseEventArgs e)
{ if (e.Button == MouseButtons.Left) { mouseOffset = new Point(-e.X, -e.Y); isMouseDown = true; } }//双击窗体时,窗体关闭
private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
{ this.Close(); Application.Exit(); }//移动鼠标时,窗体随之移动
private void Form1_MouseMove(object sender, MouseEventArgs e)
{ if (isMouseDown) { Point mousePos = Control.MousePosition; mousePos.Offset(mouseOffset.X, mouseOffset.Y); this.Location = mousePos; } }可以试试,比较简单的代码。