2010-08-09 2 views

Répondre

11

Vous devez enregistrer lorsque la souris est vers le bas et à l'aide des MouseDown et MouseUp événements:

private bool mouseIsDown = false; 
private Point firstPoint; 

private void Form1_MouseDown(object sender, MouseEventArgs e) 
{ 
    firstPoint = e.Location; 
    mouseIsDown = true; 
} 

private void Form1_MouseUp(object sender, MouseEventArgs e) 
{ 
    mouseIsDown = false; 
} 

Comme vous pouvez voir, le premier point est en cours d'enregistrement, de sorte que vous pouvez ensuite utiliser l'événement MouseMove comme suit:

private void Form1_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (mouseIsDown) 
    { 
     // Get the difference between the two points 
     int xDiff = firstPoint.X - e.Location.X; 
     int yDiff = firstPoint.Y - e.Location.Y; 

     // Set the new point 
     int x = this.Location.X - xDiff; 
     int y = this.Location.Y - yDiff; 
     this.Location = new Point(x, y); 
    } 
} 
3

Écoutez l'événement lorsque le bouton de la souris descend dans le formulaire, puis écoutez les mouvements de la souris jusqu'à ce qu'il remonte.

est ici un article CodeProject qui montre comment faire: Move window/form without Titlebar in C#

4

Vous pouvez le faire manuellement en gérant l'événement MouseDown, comme expliqué dans les autres réponses. Une autre option est d'utiliser ce small utility class j'ai écrit il y a quelque temps. Il vous permet de rendre la fenêtre "mobile" automatiquement, sans une ligne de code.

Questions connexes