古詩詞大全網 - 成語查詢 - C# 怎麽拖動panel?

C# 怎麽拖動panel?

[DllImport("user32.dll",?EntryPoint?=?"ReleaseCapture")]

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標準的拖拽事件,下面那位,拖動的時候窗體會閃爍不停,壹直在渲染背景