Questo dovrebbe essere quello che stai cercando "Enhanced: Drag and move WinForms"
public partial class MyDraggableForm : Form
{
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
///
/// Handling the window messages
///
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);
if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;
}
public MyDraggableForm()
{
InitializeComponent();
}
}
Come afferma il post del blog, questo è un modo per "ingannare" il sistema. In questo modo non è necessario pensare a eventi mouse su/giù.
fonte
2011-01-22 12:40:16
Ricorda che come effetto collaterale la finestra ingrandirà al doppio clic. [Questa risposta] (http://stackoverflow.com/a/1592899/855432) non causa questo problema. – ghord
Posso renderlo trascinabile solo su alcune porzioni? ad es. con un'area di controllo – Thunder
Elimina anche il pulsante destro del mouse. – TaW