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 ...{ publicpartialclass Form1 : Form ...{ [DllImport("user32.dll")] publicstaticextern IntPtr SendMessage(IntPtr hWnd, int msg, int wparam, int lparam); public Form1() ...{ InitializeComponent(); } protectedoverridevoid OnMouseDown(MouseEventArgs e) ...{ base.OnMouseDown(e); if (e.Button == MouseButtons.Left)//按下的是鼠标左键 ...{ Capture =false;//释放鼠标,使能够手动操作 SendMessage(Handle, 0x00A1, 2, 0);//拖动窗体 } } } }
重写Wndproc
using System; using System.ComponentModel; using System.Windows.Forms; namespace WindowsApplication1 ...{ publicpartialclass Form1 : Form ...{ public Form1() ...{ InitializeComponent(); } protectedoverridevoid WndProc(ref Message m) ...{ if (m.Msg ==0x0201) //鼠标左键按下去的消息 ...{ m.Msg =0x00A1;//更改消息为非客户区按下鼠标 m.LParam = IntPtr.Zero;//默认值 m.WParam =new IntPtr(2);//鼠标放在标题栏内 } base.WndProc(ref m); } privatevoid Form1_Load(object sender, EventArgs e) ...{ } } }