Grafikus C# – Windows Forms tanfolyam › 1.1 lecke

Windows Forms · 1.1 lecke · önálló gyakorlás

Első Windows Forms projekt – Designer és Form

A 0. fejezetben megismerted a Visual Studio ablakait és a projekt fájljait. Most önállóan készíted el az első saját ablakodat: egy gombot és egy feliratot, amely a gombnyomásra megváltozik. Közben végig gyakorlod, amit eddig tanultál.

  • kb. 45–60 perc
  • kezdő szint
  • önálló gyakorlás
Diáklány C# programot készít laptopon

A lecke végére

  • önállóan létrehozol egy Windows Forms projektet;
  • elhelyezel egy gombot és egy feliratot, és beszédes nevet adsz nekik;
  • megírod az első eseménykezelődet, amely a feliratot módosítja;
  • érted a (Name) és a Text különbségét;
  • a névelőtagokat (btn, lbl, txt…) tudatosan használod;
  • felismered és javítod az első leggyakoribb hibákat.

Mielőtt elkezded

Ehhez a leckéhez a 0. fejezet leckéire támaszkodunk. Ha elakadsz, a megfelelő rész ott részletesebben le van írva.

0.3 Visual Studio telepítése →

0.7 Tervező, kód, első futtatás →

Hozd létre a projektet

Ezt a lépéssort a 0. fejezetben már részletesen megnézted. Itt röviden összefoglaljuk, hogy önállóan végig tudd csinálni:

  1. Nyisd meg a Visual Studiót, és a nyitóképernyőn válaszd a Create a new project lehetőséget.
  2. Keresd meg a Windows Forms App (.NET Framework) sablont (C# nyelvvel), és kattints a Next gombra. A választásról a 0.4 leckében olvashattál, bármelyik sablon jó.
  3. A projekt neve legyen ElsoAblakom. Ha a Visual Studio kínálja, a keretrendszer legyen .NET Framework 4.7.2, majd kattints a Create gombra.
  4. Megnyílik a tervező az üres Form1 ablakkal. Ha nem látod, a Solution Explorerben jobb gombbal kattints a Form1.cs fájlra, és válaszd a View Designer pontot.

Te jössz!

Hozd létre a projektet, majd nyomd meg az F5 billentyűt: egy üres ablaknak kell megjelennie. Zárd be, és térj vissza a Visual Studióba.

Ismerkedj meg a felülettel

A megnyitott projekt így néz ki. A nyilak a tervező legfontosabb részeit jelölik:

A Visual Studio Windows Forms projektje megnyitás után: az üres Form, a Toolbox, a Form Designer, a Solution Explorer, a Properties és az Output panel, magyar nyilakkal megjelölve.
A Visual Studio felülete egy frissen létrehozott Windows Forms projekttel. Kattintásra nagyítható.
ToolboxA vezérlők gyűjteménye, amelyből az ablakra húzod az elemeket.
Form DesignerA tervező, a szerkesztőterület.
FormA saját programod üres ablaka.
Solution ExplorerA projekt fájljainak listája.
PropertiesA kijelölt elem tulajdonságai és eseményei.
OutputA fordítás és a program üzenetei.

Ezeket a paneleket a 0.6 leckében részletesen megismerted. Ha egy panel eltűnt, a View menüben visszahozhatod.

Egy gomb, egy felirat és a nevük

Építsd fel a felületet:

  1. View → Toolbox (Ctrl+Alt+X), majd húzz egy Label-t és egy Button-t az ablakra.
  2. Kattints a gombra, és az F4 billentyűvel nyisd meg a Properties ablakot. A (Name) legyen btnKoszones, a Text pedig Köszönés.
  3. A feliratnál a (Name) legyen lblUzenet, a Text pedig Kezdésre kész.
btnKoszonesA gomb neve. A btn a Button rövidítése, a Koszones a szerepe.
lblUzenetA felirat neve. Az lbl a Label rövidítése, az Uzenet a szerepe.

Miért rövidítjük az előtagokat?

Az előtagból azonnal látod a vezérlő típusát. A leggyakoribbak: btn (Button), lbl (Label), txt (TextBox), cmb (ComboBox), chk (CheckBox), lst (ListBox), rtb (RichTextBox). Az előtagok nem kötelező C# szabályok, csak szokások, amelyek olvashatóbbá teszik a kódot.

📷 Képernyőkép helye

Mit tegyél ide: a tervező nézet a kész felülettel: az ablakban egy „Kezdésre kész” felirat és egy „Köszönés” gomb. Mellette a Properties ablak, amelyben a gomb (Name) mezője btnKoszones.Javasolt fájlnév: winforms-1-1-gomb-es-felirat.webp · Alt szöveg: A tervezőben egy gomb és egy felirat, a Properties ablakban a beállított nevekkel

Pontosan ugyanazt a nevet írd!

A kódban a (Name) tulajdonságban megadott nevet használod. Ha a Properties ablakban btnKoszones a név, a kódban is pontosan így kell írnod, kis- és nagybetűre is figyelve.

Az első eseménykezelő

Kattints duplán a gombra: a Visual Studio létrehozza a btnKoszones_Click eseménykezelőt, és megnyitja a kódnézetet. A kapcsos zárójelek közé írd be az alábbi sort:

Form1.csC#
private void btnKoszones_Click(object sender, EventArgs e)
{
lblUzenet.Text = "Szia! Ez az első ablakom.";
}
lblUzenetA felirat neve, amelyet a (Name) tulajdonságban adtál meg.
.TextA felirat látható szövege. Ez a tulajdonság módosul.
=Értékadás: az új szöveg bekerül a feliratba.
Nem Console.WriteLineAblakos programban a vezérlők frissülnek, nem a konzolra írunk.

Jósolj!

Elindítod a programot (F5). Mit mutat a felirat a gomb megnyomása előtt? És utána?

Jóslat ellenőrzése

Előtte a Kezdésre kész szöveget, utána az Szia! Ez az első ablakom. szöveget. Az eseménykezelő csak a kattintáskor fut le.

📷 Képernyőkép helye

Mit tegyél ide: két egymás utáni kép a futó programról: gombnyomás előtt („Kezdésre kész”) és után („Szia! Ez az első ablakom.”).Javasolt fájlnév: winforms-1-1-elso-ablak-fut.webp · Alt szöveg: Az első Windows Forms program a gombnyomás előtt és után

Hibakeresés: te vagy a hibadetektív

Mi a baj, és hogyan javítod?

Gondold végig az okot, és csak utána nyisd le a megoldást.

1. A gomb felirata változik a felirat helyett

btnKoszones.Text = "Szia! Ez az első ablakom.";
Ok és javítás

Rossz működés: a kód a gomb feliratát módosítja, nem a címkéét. A btnKoszones a gomb, a lblUzenet a felirat. Javítás: lblUzenet.Text = "...";

2. Ismeretlen név

lblUzenet.Text = "Szia!";
// CS0103: The name 'lblUzenet' does not exist in the current context
Ok és javítás

Fordítási hiba (CS0103): a felirat (Name) tulajdonsága még az alapértelmezett label1. Írd át a Properties ablakban lblUzenet-re, vagy használd a kódban a valódi nevet.

3. Hiányzó idézőjel

lblUzenet.Text = Szia!;
Ok és javítás

Fordítási hiba: a szöveget idézőjelek közé kell tenni, különben a C# változónévnek hiszi. Helyesen: lblUzenet.Text = "Szia!";

4. Hiányzó pontosvessző

lblUzenet.Text = "Szia!"
// CS1002: ; expected
Ok és javítás

Fordítási hiba (CS1002): a sor végéről hiányzik a pontosvessző. Tedd ki: lblUzenet.Text = "Szia!";

5. Nem történik semmi kattintásra

A gombra kattintasz, de a felirat nem változik.

Ok és javítás

Valószínűleg az eseménykezelőt kézzel gépelted be, ezért nincs összekötve a gombbal. Töröld, és generáltasd újra a gombra való dupla kattintással, vagy az Events nézetben (villám) válaszd ki a Click sornál.

Három önálló gyakorlófeladat

Egyszerre csak egyet csinálj: tervezd meg, írd meg, futtasd, ellenőrizd, és csak utána nyisd ki a megoldást.

1. Változtasd meg a felirat szövegét

Gombnyomásra az Üdv a C# világában! szöveg jelenjen meg.

Egy lehetséges megoldás
lblUzenet.Text = "Üdv a C# világában!";

2. A Name és a Text különbsége

Állítsd a gomb Text tulajdonságát Indítás-ra, a nevét hagyd btnKoszones-nak. Működik még a program? Miért?

Egy lehetséges megoldás

Igen, működik. A Text csak a látható felirat, a kód a (Name) tulajdonságra hivatkozik. Az eseménykezelő neve (btnKoszones_Click) sem változik a felirat átírásától.

3. Két gombos mini alkalmazás

Készíts új projektet két gombbal és egy felirattal (lblSzoveg). Az egyik gomb (btnSzepNap) a Szép napot! szöveget, a másik (btnTanulas) a Jó tanulást! szöveget írja ki.

Egy lehetséges megoldás
private void btnSzepNap_Click(object sender, EventArgs e)
{
lblSzoveg.Text = "Szép napot!";
}

private void btnTanulas_Click(object sender, EventArgs e)
{
lblSzoveg.Text = "Jó tanulást!";
}

4. Kihívás: színes felirat

A gombnyomásra a felirat színe is legyen piros.

Egy lehetséges megoldás
lblUzenet.ForeColor = Color.Red;

A ForeColor a betűszín. Ha a Color alá hullámvonal kerül, add a fájl elejéhez a using System.Drawing; sort.

Gyakorlótár: 6 további feladat

Három szinten gyakorolhatsz: alap, közepes és kihívás. Mindegyiket próbáld ki a gépen, és csak utána nyisd le a megoldást.

Alap szint

1. A Form felirata és mérete

Állítsd a Form címsorát Első programom szövegre, és a méretét 400 × 300 képpontra. Mit használsz hozzá?

Megoldás megnyitása

Jelöld ki a Formot a tervezőben, és a Properties ablakban állítsd: Text = Első programom, Size = 400, 300. Az átméretezést a Form szélének húzásával is elvégezheted, a Size érték ilyenkor magától változik.

2. Középre induló ablak

Az ablak a képernyő közepén jelenjen meg indításkor. Melyik tulajdonságot állítod, és mire?

Megoldás megnyitása

A Form StartPosition tulajdonságát állítsd CenterScreen értékre. Az alapértelmezett WindowsDefaultLocation a Windowsra bízza az ablak helyét, ezért máshol jelenhet meg.

Közepes szint

3. Fix méretű, színes ablak

Készíts világossárga hátterű ablakot, amelynek nem lehet átméretezni, és nincs maximalizáló gombja.

Megoldás megnyitása

BackColor = LightYellow, FormBorderStyle = FixedDialog (a szél nem húzható), MaximizeBox = False. A FixedDialog külön a minimalizálás gombot is eltűnteti, ha a MinimizeBox is False.

4. Beállítás kódból

A Form címsorát és háttérszínét az ablak betöltésekor, kódból állítsd be (cím: Kódból beállítva, háttér: LightBlue).

Megoldás megnyitása

Hozz létre a Form1-hez egy Load eseménykezelőt (Properties → villám → Load dupla kattintás). A this az aktuális Formot jelenti. Ha a Color piros hullámvonallal jelenik meg, add hozzá a fájl elejére a using System.Drawing; sort.

Form1.csC#
private void Form1_Load(object sender, EventArgs e)
{
this.Text = "Kódból beállítva";
this.BackColor = Color.LightBlue;
}

Kihívás szint

5. Címke kódból

Hozz létre kódból egy feliratot (Label) a Form Load eseményében: szöveg Ezt a kód hozta létre, a bal felső saroktól 20–20 képpontra.

Megoldás megnyitása

A vezérlők is csak objektumok: létrehozod (new Label()), beállítod a tulajdonságait, majd a Form Controls gyűjteményéhez adod. Enélkül a felirat nem jelenik meg.

Form1.csC#
private void Form1_Load(object sender, EventArgs e)
{
Label felirat = new Label();
felirat.Text = "Ezt a kód hozta létre";
felirat.AutoSize = true;
felirat.Location = new Point(20, 20);

this.Controls.Add(felirat);
}

6. Névjegykártya-ablak

Tervezz egy névjegykártya-ablakot: a neved, az osztályod és egy kedvenc mondatod három külön feliraton. Legyen beszédes a Form címe és minden elem neve.

Megoldás megnyitása

Form: Text = Névjegykártya, StartPosition = CenterScreen. Három Label: lblNev (nagyobb, félkövér betű a Font tulajdonsággal), lblOsztaly, lblMondat. Rendezd őket egymás alá, a bal szélek igazodjanak (a tervezőben a vezérlőket kijelölve, a Format menü Align parancsaival), és a színeket állítsd be a ForeColor tulajdonsággal. Futtasd az F5-tel, és nézd meg, hogy nem lóg-e ki a szöveg az ablakból.

Gyors önellenőrzés

Próbáld meg a választ fejben megadni, és csak utána nyisd le.

1. Mire való a Toolbox?

A vezérlők gyűjteménye: innen húzod az ablakra a gombokat, feliratokat és beviteli mezőket.

2. Mi a különbség a (Name) és a Text között?

A (Name) a vezérlő neve a kódban, a Text a felhasználónak látható felirat.

3. Melyik fájlban szokás eseménykezelőt írni?

A Form1.cs fájlban. A Form1.Designer.cs a Visual Studio generált kódját tartalmazza.

4. Mit jelent a btn és az lbl előtag?

A btn a Button (gomb), az lbl a Label (felirat) rövidítése. Az előtagok szokások, nem kötelező szabályok.

5. Mikor fut le a gomb eseménykezelője?

Csak akkor, amikor a felhasználó rákattint a gombra.

Mit tudsz már?

  • Önállóan létrehozol egy Windows Forms projektet.
  • Gombot és feliratot helyezel el, és beszédes nevet adsz nekik.
  • Megírod az első eseménykezelődet.
  • Érted a (Name) és a Text különbségét.
  • Felismered az első gyakori hibákat.

Következő lecke: TextBox, Button, Label és MessageBox

Akkor haladj tovább, ha az első feladatot segítség nélkül újra meg tudod írni. A következő leckében adatot kérünk be a felhasználótól.