Přejít na hlavní obsah

Jak přesouvat formulář ve Windows Forms pomocí myši

Windows Forms, jedna z nejoblíbenějších technologií pro vývoj aplikací na platformě.NET, má mnoho možností pro vytváření uživatelského rozhraní. Jednou z takových možností je pohyb tvaru pomocí myši. V tomto článku se podíváme na to, jak snadno implementovat funkci pohybu formuláře pomocí myši v aplikaci Windows Forms.

Pohyb formuláře pomocí myši je užitečná funkce, která umožňuje uživateli volně pohybovat oknem aplikace po obrazovce. To je zvláště užitečné, když je tvar velký nebo obsahuje mnoho ovládacích prvků, které se nevejdou na celou obrazovku. Pomocí této funkce může uživatel přesouvat tvar tak, aby viděl a pracoval s požadovanými prvky rozhraní.

K implementaci pohybu formuláře pomocí myši ve Windows Forms budeme potřebovat několik dalších ovládacích prvků a kódu. Nejprve přidáme ovládací prvek panelu, který bude představovat hlavičku formuláře. Poté napíšeme malý kód, který bude reagovat na události myši a přesouvat tvar podle akcí uživatele. Výsledkem je jednoduché a efektivní řešení pro pohyb formuláře pomocí myši ve Windows Forms.

Jak přesunout formulář ve Windows Forms

K přidání funkce přesunu formuláře ve Windows Forms lze použít metody a události poskytované samotnou technologií. Níže je uveden příklad kódu v jazyce C#, který vám umožňuje přesouvat tvar pomocí myši:

// Přidání obslužných rutin this.MouseDown += new MouseEventHandler(Form1_MouseDown); this.MouseMove += new MouseEventHandler(Form1_MouseMove); // Obsluha události stisknutí tlačítka myši private void Form1_MouseDown (object sender, MouseEventArgs e) < if (e.Button == MouseButtons.Left) < // Захват формы мышью Capture = false; // Изменение положения формы Location = new Point(e.X, e.Y); // Запуск перемещения формы Capture = true; >> / Psovod události pohybu myši private void Form1_MouseMove (object sender, MouseEventArgs e) < if (Capture) < // Изменение положения формы при перемещении мыши Location = new Point(Location.X + e.X, Location.Y + e.Y); >>

V tomto příkladu přidáváme do formuláře zpracovatele událostí MouseDown a MouseMove. Stisknutím levého tlačítka myši se spustí obslužná rutina MouseDown, která zachytí tvar myši a změní její polohu podle aktuální polohy kurzoru. Při pohybu myši je povolán obslužný program MouseMove, který také mění polohu tvaru podle aktuální polohy kurzoru.

Nyní, když jste do aplikace Windows Forms přidali funkci přesunu formuláře, uživatelé budou moci snadno změnit polohu softwarového okna na obrazovce, což může být užitečné pro snadné použití nebo vytvoření interaktivního uživatelského rozhraní.

Oddíl 1

Nejprve je nutné připojit jmenný prostor systému.Windows.Forms, který obsahuje třídy a metody pro práci s ovládacími prvky ve Windows Forms.

Dále v kódu formuláře je třeba zpracovat události související s myší-MouseDown, MouseMove a MouseUp. Událost MouseDown se spustí stisknutím tlačítka myši na formulář. Ve zpracovateli této události je třeba si zapamatovat aktuální pozici kurzoru. Událost MouseMove se spustí při pohybu kurzoru ve tvaru. V obsluze této události je možné vypočítat rozdíl mezi aktuální pozicí kurzoru a zapamatovanou pozicí, když stisknete tlačítko myši, a poté aktualizovat pozici formuláře. Nakonec se událost MouseUp spustí, když uvolníte tlačítko myši. Ve zpracovateli této události je třeba Vymazat údaje o poloze kurzoru.

Zde je příklad kódu, který ukazuje implementaci pohybu formuláře pomocí myši:

using System;using System.Windows.Forms;namespace WindowsFormsAppprivate void Form1_MouseDown(object sender, MouseEventArgs e)>private void Form1_MouseMove(object sender, MouseEventArgs e)>private void Form1_MouseUp(object sender, MouseEventArgs e)>>>

Nyní, při spuštění aplikace, lze formulář přesunout pomocí myši, podržet levé tlačítko myši a přetáhnout tvar.

Pohyb formuláře pomocí myši je jednoduchá, ale užitečná funkce, která může být užitečná při vytváření uživatelského rozhraní ve Windows Forms.

Poznámka: Aby kód fungoval správně, nezapomeňte propojit výše uvedené obslužné rutiny událostí s příslušnými událostmi formuláře.

Metoda pohybu formuláře pomocí myši

Metoda pohybu formuláře pomocí myši ve Windows Forms umožňuje uživateli změnit polohu formuláře na obrazovce Přetažením. Pro implementaci této funkce je nutné provést následující kroky:

  1. Zpracujte událost MouseDown a začněte sledovat pohyb myši. V této události je třeba zkontrolovat, zda bylo stisknuto levé tlačítko myši.
  2. Zpracovat událost MouseMove pro sledování pohybu myši. V této události je třeba zkontrolovat, zda bylo stisknuto levé tlačítko myši a přesunout tvar podle aktuálních souřadnic ukazatele myši.
  3. Zpracováním události MouseUp zastavíte sledování pohybu myši. V této události je nutné zkontrolovat, zda bylo uvolněno levé tlačítko myši.

Příklad kódu pro implementaci metody pohybu formuláře pomocí myši:

private bool isMouseDown = false;private Point mouseOffset;private void Form1_MouseDown(object sender, MouseEventArgs e)>private void Form1_MouseMove(object sender, MouseEventArgs e)>private void Form1_MouseUp(object sender, MouseEventArgs e)>

Tento kód musí být umístěn v souboru kódu formuláře (například v souboru s příponou .cs ). Zde používáme vlajku isMouseDown ke sledování, zda bylo stisknuto levé tlačítko myši , stejně jako proměnnou mouseOffset, abychom zachovali počáteční souřadnice ukazatele myši vzhledem k tvaru. V metodě Form1_MouseMove aktualizujeme polohu formuláře podle aktuálních souřadnic ukazatele myši.

Formulář se nyní bude pohybovat spolu s ukazatelem myši, když je stisknuto levé tlačítko myši. Tato metoda umožňuje uživateli volně přesouvat formulář po obrazovce pomocí myši a lze jej použít v aplikacích Windows Forms pro pohodlí uživatelů.