J'ai un formulaire Windows qui n'a pas de bordure, barre de titre, menu, etc. Je veux que l'utilisateur puisse maintenir la touche CTRL enfoncée, clique gauche n'importe où sur mon formulaire, et le fasse glisser, et l'ai bouge toi. Une idée de comment faire cela? J'ai essayé, mais il vacille, beaucoup:Comment déplacer un formulaire alors que la souris est maintenue enfoncée?
private void HiddenForm_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.SuspendLayout();
Point xy = new Point(this.Location.X + (e.X - this.Location.X), this.Location.Y + (e.Y - this.Location.Y));
this.Location = xy;
this.ResumeLayout(true);
}
}
Cela a bien fonctionné, juste curieux de savoir ce qu'il fait? – esac
Il est mentir à la proc par défaut fenêtre qu'un événement de souris vers le bas est arrivé à la "non" client de la fenêtre de la fenêtre. Cependant, si vous voulez l'implémentation correcte, vous devez ajouter votre propre hook de proc de message et traiter le message WM_NCHITTEST pour renvoyer HT_CAPTION pour les zones de votre formulaire que vous souhaitez activer. –
+1 Doux ... tu gagnes :) Je n'ai même pas eu le bon calcul LOL. –