用Google了一些網上的方法.覺得比較看得過去的方法
主要參考:
http://blog.csdn.Net/icoolno1/archive/2006/04/06/652637.ASPx
引用winAPI.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1
...{
public partial class Form1 : Form
...{
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wparam, int lparam);
public Form1()
...{
InitializeComponent();
}
protected override void OnMouseDown(MouseEventArgs e)
...{
base.OnMouseDown(e);
if (e.Button == MouseButtons.Left)//按下的是鼠標左鍵
...{
Capture = false;//釋放鼠標,使能夠手動操作
SendMessage(Handle, 0x00A1, 2, 0);//拖動窗體
}
}
}
}
重寫Wndproc
...{
InitializeComponent();
}
protected override void WndProc(ref Message m)
...{
if (m.Msg == 0x0201) //鼠標左鍵按下去的消息
...{
m.Msg = 0x00A1;//更改消息為非客戶區按下鼠標
m.LParam = IntPtr.Zero;//默認值
m.WParam = new IntPtr(2);//鼠標放在標題欄內
}
base.WndProc(ref m);
}
private void Form1_Load(object sender, EventArgs e)
...{
}
}
}