Heim > Backend-Entwicklung > C++ > Wie kann ich ein randloses Formular in C# beweglich machen?

Wie kann ich ein randloses Formular in C# beweglich machen?

Linda Hamilton
Freigeben: 2025-01-24 15:31:11
Original
627 Leute haben es durchsucht

How Can I Make a Borderless Form Movable in C#?

Randlose bewegliche Form erstellen (C#)

Umrandete Formulare lassen sich leicht in der Größe ändern und verschieben, sie sind jedoch nicht immer die beste Wahl. Manchmal möchten Sie vielleicht ein randloses Design, aber das stellt uns vor ein Rätsel: Wie kann man ein Formular ohne Ränder verschieben? So erreichen Sie dies:

Diese Methode verwendet die Win32-API, um das Verhalten eines Fensters mit einer Titelleiste zu simulieren. Sie benötigen folgende Konstanten und Funktionen:

<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();</code>
Nach dem Login kopieren

Implementieren Sie im MouseDown-Ereignishandler des randlosen Formulars den folgenden Code:

<code class="language-csharp">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>
Nach dem Login kopieren

Dieser Code simuliert das Verhalten beim Klicken auf die Titelleiste und ermöglicht es Ihnen, das gesamte Formular zu verschieben, indem Sie auf eine beliebige Stelle im Formular klicken. Wenn die linke Maustaste gedrückt wird, wird die Erfassung freigegeben und eine Nachricht an den Fenstermanager gesendet, die angibt, dass eine Schaltfläche in der „Titelleiste“ (HT_CAPTION) des Formulars gedrückt wird. Durch die Simulation dieses Verhaltens können Sie das Formular so verschieben, als ob es einen Rand hätte, ohne dass das gewünschte randlose Design beeinträchtigt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich ein randloses Formular in C# beweglich machen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage