public?static?extern?void?ReleaseCapture();
[DllImport("user32.dll",?EntryPoint?=?"SendMessage")]
public?static?extern?void?SendMessage(int?hwnd,?int?wMsg,?int?wParam,?int?lParam);
把上面語句加載窗體類文件中,然後在拖拽的控件上加事件,比如我是壹個panel
private?void?panelForm_MouseDown(object?sender,?MouseEventArgs?e){
if?(e.Button?==?MouseButtons.Left)
{
ReleaseCapture();
SendMessage((int)移動的對象.Handle,?0xA1,?2,?0);
//是窗體自身就是
//SendMessage((int)this.Handle,?0xA1,?2,?0);
//panel就是SendMessage((int)panel1.Handle,?0xA1,?2,?0);
}
}
這種才是windows標準的拖拽事件,下面那位,拖動的時候窗體會閃爍不停,壹直在渲染背景