C#的滑鼠拖曳Form的方法

文章來源<http://social.msdn.microsoft.com/forums/zh-TW/233/thread/3ef98e8a-ba69-4dfb-b07d-8961498b0dbc/>


namespace WindowsApplication1
{
public partial class Form1 : Form
{
protected Point MousePt ; // 紀錄移動前和移動後的滑鼠座標
protected bool canMove = false; // 紀錄表單可否被拖曳
protected int LeftVar = 0, TopVar = 0; // 紀錄form的移動量

public Form1()
{
InitializeComponent();
}

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
// 拖曳form
if (canMove)
{
this.Left += e.X - MousePt.X;
this.Top += e.Y - MousePt.Y;
}
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
// 設定滑鼠移動前的座標
MousePt = new Point(e.X,e.Y);
canMove = true; // 如果按下滑鼠左鍵時 可以移動表單
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
canMove = false; // 如果放開滑鼠左鍵時 暫停移動表單
}
}
}

張貼留言

2 留言