Création d'un formulaire Windows déplaçable et sans bordure
La conception de formulaires sans bordure dans Windows Forms offre une esthétique élégante et moderne. Cependant, cela présente souvent un défi : comment rendre le formulaire mobile sans la barre de titre ou la bordure habituelle ? Cet article propose une solution utilisant l'API Windows.
L'essentiel est de simuler un clic sur la barre de titre à l'aide des fonctions SendMessage
et ReleaseCapture
. Ces appels d'API incitent efficacement le gestionnaire de fenêtres à lancer une opération de glisser, même en l'absence de bordure visible.
Voici l'implémentation du code :
<code class="language-csharp">public const int WM_NCLBUTTONDOWN = 0xA1; public const int HT_CAPTION = 0x2; [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool ReleaseCapture(); private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == MouseButtons.Left) { ReleaseCapture(); SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); } }</code>
L'ajout de ce code au gestionnaire d'événements MouseDown
de votre formulaire vous permet de faire glisser et de repositionner le formulaire sans bordure en cliquant et en faisant glisser n'importe où dans la zone client du formulaire. Cela fournit la fonctionnalité souhaitée sans compromettre le design épuré et sans bordure.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!