Grafikus C# – Windows Forms tanfolyam › 14.8 lecke

Windows Forms · 14.8 lecke · kiadás

Ikon, verzió, szerző és About

Két program lehet műszakilag egyformán jó, mégis az egyik kész terméknek látszik, a másik iskolai próbálkozásnak. A különbség sokszor a részletekben van: van saját ikonja (nem az alapértelmezett fehér ablak), a fájl tulajdonságai között verzió, szerző és szerzői jog áll, és a programban van egy Névjegy (About) ablak, amely megmondja, mi ez, ki készítette, melyik verzió, milyen licenc alatt áll. Ezek a hibabejelentésnél is aranyat érnek: „melyik verzióval történt?” Ebben a leckében megtanulod az alkalmazásikon beállítását (.ico), a verzió- és szerzői metaadatok beállítását a projektfájlban, a verzió olvasását kódból, a Névjegy ablak elkészítését, a szerzői jog és a licenc alapjait, és hogy mit tegyél (és mit ne) a névjegyedbe.

  • kb. 90 perc
  • közepes szint
  • arculat és azonosítás
Diáklány C# programot készít laptopon

A lecke végére

  • beállítod az alkalmazásikont (.ico, többféle méret) és az ablak ikonját;
  • megadod a verzió- és szerzői metaadatokat a projektfájlban (Version, Company, Copyright);
  • kódból kiolvasod a verziót (Assembly, Application.ProductVersion);
  • elkészítesz egy Névjegy ablakot a szükséges tartalommal;
  • ismered a szerzői jog és a licenc alapjait (a saját programodé, az ikonoké, a csomagoké);
  • tudod, mit érdemes és mit nem érdemes kiírni a névjegyre.

Mielőtt elkezded

Ehhez a leckéhez a 14.1–14.7 lecke szükséges, különösen a 14.4 (licencek) és a 14.6 (frissítés-ellenőrző, verzió).

14.7 Fájlok helye →

Az alkalmazásikon

Konyvtar.App.csproj és Form1.csXML / C#
<!-- A projektfájlban: az exe és a Fájlkezelő ikonja -->
<PropertyGroup>
<ApplicationIcon>Kepek\app.ico</ApplicationIcon>
</PropertyGroup>

// Visual Studio: Project → Properties → Application → Resources → Icon: app.ico

// Az ABLAK ikonja (a címsorban és a tálcán): a Form Icon tulajdonsága
// Designer: Properties → Icon → app.ico (vagy kódból:)
this.Icon = new Icon(System.IO.Path.Combine(AppContext.BaseDirectory, "Kepek", "app.ico"));

// Az exe ikonja a programból is kiolvasható (egyetlen forrásból dolgozunk)
this.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath);
.ico, nem .pngA Windows ikonformátuma az .ico: egy fájl több méretet tartalmaz (16×16, 24×24, 32×32, 48×48, 256×256), hogy a Fájlkezelőben, a tálcán, a Start menüben és nagy DPI-n is éles legyen. A .png fájlt nem lehet közvetlenül alkalmazásikonnak használni: konvertálni kell (online átalakítók, Visual Studio ikonszerkesztő, ImageMagick).
Két helyen állítodAz ApplicationIcon az exe fájl ikonja (Fájlkezelő, parancsikon). A Form Icon tulajdonsága az ablak ikonja (címsor, tálca futás közben). Mindkettőt állítsd be, különben a futó program az alapértelmezett ikont mutatja.
Jó ikonEgyszerű, felismerhető forma, kevés részlet (16 pixelen is látszik), jól elkülönülő színek, átlátszó háttér. A kis méretekhez érdemes külön, leegyszerűsített változatot rajzolni.
GyorsítótárA Windows a Fájlkezelőben gyorsítótárazza az ikonokat: az új ikon után a fájl még a régit mutathatja. Újraindítás, az ikongyorsítótár törlése, vagy a fájl átnevezése segít. Ne higgy rögtön a hibának.

Jósolj!

Beállítod az ApplicationIcon értékét, lefordítod, és a Fájlkezelőben az exe már az új ikont mutatja. De amikor a programot elindítod, a tálcán és az ablak címsorában az alap (fehér ablak) ikon látszik. Miért?

Jóslat ellenőrzése

Az ApplicationIcon csak az exe fájl ikonja; az ablak ikonját a Form.Icon tulajdonság adja. Állítsd be a Formon is (Designer: Icon), vagy kódból (Icon.ExtractAssociatedIcon).

Verzió és szerzői adatok

Konyvtar.App.csprojXML
<PropertyGroup>
<Product>Diáknyilvántartó</Product>
<Description>Egyszerű nyilvántartó iskolai használatra.</Description>
<Company>Példa Diák</Company>
<Authors>Példa Diák</Authors>
<Copyright>© 2026 Példa Diák</Copyright>

<Version>1.2.0</Version> <!-- ez a fő verzió: a többit ebből származtatja -->
<AssemblyVersion>1.2.0.0</AssemblyVersion> <!-- a .NET kötési azonosító: ritkán módosítsd -->
<FileVersion>1.2.0.0</FileVersion> <!-- a fájl Tulajdonságok → Részletek fülén látszik -->
<InformationalVersion>1.2.0</InformationalVersion> <!-- a felhasználónak szóló verziószöveg -->
</PropertyGroup>
Verzio.cs (using System.Reflection; using System.Diagnostics;)C#
public static class Verzio
{
public static string Szam { get { return Assembly.GetExecutingAssembly().GetName().Version.ToString(3); } } // "1.2.0" (3 elem)

public static string Teljes { get { return FileVersionInfo.GetVersionInfo(Application.ExecutablePath).ProductVersion ?? Szam; } }

public static string Termek { get { return Application.ProductName; } } // a <Product> értéke
public static string Ceg { get { return Application.CompanyName; } } // a <Company> értéke

public static string Mod
{
get
{
#if DEBUG
return "Debug";
#else
return "Release";
#endif
}
}
}
Három verzió, három szerepA AssemblyVersion a .NET belső azonosítója (ritkán változik); a FileVersion a fájl Tulajdonságok ablakában látszik; az InformationalVersion/ProductVersion a felhasználónak szóló szöveg (lehet 1.2.0-beta.1 is). Az SDK-stílusú projektben elég a <Version>: a többit ebből állítja be.
SemVer a gyakorlatbanMajor.Minor.Patch: hibajavításnál a patch (1.2.1), új, kompatibilis funkciónál a minor (1.3.0), törő változásnál a major (2.0.0). A frissítés-ellenőrző (14.6 lecke) ezt a számot hasonlítja: ezért fontos, hogy minden kiadás új, nagyobb számot kapjon.
Egy forrásA verzió egyetlen helyen él (a .csproj <Version> sora): a telepítő (AppVersion, 14.6 lecke), a csomag neve, a Névjegy és a napló (13.7 lecke) ebből olvas. A több helyen kézzel írt verzió előbb-utóbb eltér.
Commit azonosítóHaladóbb módszer: az InformationalVersion a verziókezelő commit azonosítóját is tartalmazza (1.2.0+a3f9c1): ebből pontosan tudod, melyik forráskódból készült a kiadás. A Version.TryParse előtt a + utáni részt le kell vágni (14.6 lecke).

Jósolj!

Kiadsz egy hibajavító változatot, de elfelejted növelni a verziót: az újabb telepítő is 1.2.0 számú. A felhasználó programja a frissítés-ellenőrzővel összehasonlítja a verziókat. Mit mond?

Jóslat ellenőrzése

Azt, hogy a program naprakész (1.2.0 nem kisebb, mint 1.2.0): a felhasználók sosem értesülnek a javításról, és a hibajelentésben sem tudod megkülönböztetni a régi és az új változatot. Minden kiadás kapjon új verziószámot.

A Névjegy (About) ablak

A Névjegy ablak tartalma (példa)terv
┌─────────────────────────────────────────────┐
│ [ikon] Diáknyilvántartó │
│ Verzió 1.2.0 (Release, .NET 8.0) │
│ │
│ Egyszerű nyilvántartó iskolai használatra. │
│ © 2026 Példa Diák │
│ Licenc: MIT (licenc megtekintése) │
│ Harmadik fél: CsvHelper, SQLite │
│ Weboldal: https://pelda.hu/diak │
│ Adatok helye: C:\Users\...\AppData\Local │
│ │
│ [Másolás hibabejelentéshez] [ OK ] │
└─────────────────────────────────────────────┘
NevjegyForm.cs (using System.Diagnostics; using System.Runtime.InteropServices;)C#
public partial class NevjegyForm : Form
{
public NevjegyForm()
{
InitializeComponent();

// párbeszédablak-jellegű beállítások (Designerben is megadható)
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false; MinimizeBox = false; ShowInTaskbar = false;
StartPosition = FormStartPosition.CenterParent;
AcceptButton = btnOk; CancelButton = btnOk; // Enter és Esc is bezár

Text = "Névjegy: " + Verzio.Termek;
lblNev.Text = Verzio.Termek;
lblVerzio.Text = "Verzió " + Verzio.Teljes + " (" + Verzio.Mod + ", " + RuntimeInformation.FrameworkDescription + ")";
lblSzerzo.Text = "© 2026 " + Verzio.Ceg;
lblAdat.Text = "Adatok helye: " + Utak.AdatMappa;
}

private void lnkWeb_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Uri uri;

if (Uri.TryCreate("https://pelda.hu/diak", UriKind.Absolute, out uri) && uri.Scheme == Uri.UriSchemeHttps)
{
Process.Start(new ProcessStartInfo(uri.AbsoluteUri) { UseShellExecute = true }); // az alapértelmezett böngészőben
}
}

// hibabejelentéshez: a környezeti adatok a vágólapra
private void btnMasol_Click(object sender, EventArgs e)
{
string szoveg = Verzio.Termek + " " + Verzio.Teljes + " (" + Verzio.Mod + ")" + Environment.NewLine
+ ".NET: " + RuntimeInformation.FrameworkDescription + Environment.NewLine
+ "Windows: " + RuntimeInformation.OSDescription + Environment.NewLine
+ "Architektúra: " + RuntimeInformation.ProcessArchitecture + Environment.NewLine
+ "Kultúra: " + System.Globalization.CultureInfo.CurrentCulture.Name; // személyes adat nélkül

try { Clipboard.SetText(szoveg); lblUzenet.Text = "Vágólapra másolva."; }
catch (ExternalException) { lblUzenet.Text = "A vágólap nem elérhető."; } // másik program használja
}
}

// A főablakban: Súgó → Névjegy
private void mnuNevjegy_Click(object sender, EventArgs e)
{
using (NevjegyForm f = new NevjegyForm()) { f.ShowDialog(this); } // ShowDialog után Dispose (13.9 lecke)
}
Mit tegyél bele?Név és ikon, verzió (és a mód, a futtatókörnyezet), rövid leírás, szerző és szerzői jog, licenc, a harmadik fél könyvtárak és licenceik (14.4 lecke), weboldal/kapcsolat, az adatok helye (14.7 lecke), és egy Másolás hibabejelentéshez gomb.
PárbeszédablakA Névjegy modális párbeszéd: FixedDialog szegély, nincs kis/nagyítás, nincs tálcaikon, a szülő közepén jelenik meg, az Enter és az Esc bezárja (AcceptButton/CancelButton, 13.8 lecke). A Visual Studio régi projektsablonja tartalmaz kész About Box-ot, az újabbakban kézzel készítjük.
Hivatkozás biztonságosanA LinkLabel kattintására csak https címet nyiss meg (14.6 lecke), a UseShellExecute = true az alapértelmezett böngészőt indítja. Ne nyiss meg hálózatról vagy felhasználói bevitelből érkező, ellenőrizetlen címet.
Hibabejelentés-gombA vágólapra másolt környezeti adat (verzió, .NET, Windows, architektúra, kultúra) sokat gyorsít a hibakeresésen (13.8 lecke). Személyes adatot (felhasználónév, útvonal a felhasználó nevével) ne másolj bele automatikusan.

Jósolj!

A Névjegy ablakot new NevjegyForm().ShowDialog() hívással nyitod meg using nélkül, és a felhasználó százszor megnyitja-bezárja. Mi történik hosszabb távon?

Jóslat ellenőrzése

A ShowDialog után a Form nem szabadul fel automatikusan (12.1, 13.9 lecke): minden megnyitás növeli a memória- és a Windows-fogantyúk számát. A using blokk vagy a Dispose() hívás szünteti meg a szivárgást.

Szerzői jog, licenc és mit írj a névjegyre?

TémaMire figyelj?
A saját programodA szerzői jog automatikusan a szerzőt illeti. A Copyright sor jelzi (© 2026 Név); a licenc (LICENSE fájl) mondja meg, mit szabad másoknak: MIT/Apache (szabad felhasználás feltételekkel), GPL (a származék is nyílt marad), „minden jog fenntartva”.
Ikonok, képek, hangok, betűtípusokCsak olyat használj, amelyet te készítettél, vagy amelynek a licence engedi (nyílt licenc: a forrás és a feltételek feltüntetésével; saját licencű anyagnál a felhasználási feltétel). Egy keresőből letöltött kép nem „ingyenes”. Mindig jegyezd fel a forrást és a licencet.
Harmadik fél csomagokA licencek feltételeit be kell tartani (14.4 lecke): sokszor a szerzői jogi nyilatkozat és a licenc szövegének mellékelése. A THIRD-PARTY-NOTICES.txt a program mellé kerül, és a Névjegyből elérhető.
Márkanév, logóNe használd mások védjegyét, logóját (Microsoft, Windows, iskola emblémája) a programod ikonjában vagy nevében engedély nélkül.
Személyes adat a névjegyenCsak azt írd ki, amit nyilvánosan akarsz közölni. Iskolai projektnél általában elég a (becenév vagy) szerzői név és a projekt neve; a teljes név, e-mail, osztály, lakcím kiírását gondold át (a program nyilvánosan terjed). Kapcsolatnak használhatsz külön, erre létrehozott e-mail címet vagy weboldalt.
Miért számít a licenc?A licenc nélküli kód alapértelmezetten nem szabadon másolható: a felhasználó nem tudja, mit tehet vele. Ha azt akarod, hogy mások használhassák vagy továbbfejleszthessék, adj licencet (a choosealicense.com oldal segít választani).
Iskolai projektHa a programot iskolai feladatként adod be, kövesd az intézmény szabályait (a szerzői jogról és a nyilvános közzétételről is). Idézd a forrásokat (mintakód, ikonkészlet, oktatóanyag): ez tisztességes és a plágium elkerülésére is szolgál.

Jósolj!

Az ikonodat egy keresőből másoltad ki, mert jól néz ki. A programot a weboldaladról töltik le. Mi a kockázat?

Jóslat ellenőrzése

A kép szerzői jogvédett lehet: a nyilvános terjesztés jogsértés (felszólítás, eltávolítási kérés, rosszabb esetben jogi következmény). Használj saját rajzot, vagy nyílt licencű ikont a forrás és a licenc feltüntetésével, és tartsd nyilván, honnan van.

📷 Képernyőkép helye

Mit tegyél ide: a Névjegy ablak, és a fájl Tulajdonságok → Részletek füle a verzióval és a szerzői joggal.Javasolt fájlnév: winforms-14-8-nevjegy.webp · Alt szöveg: A Névjegy ablak és a fájl részletei

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. Az új ikon nem jelenik meg a Fájlkezelőben

Beállítottad az ApplicationIcon-t, az exe mégis a régit mutatja.

Ok és javítás

Az ikon gyorsítótárazott. Nevezd át a fájlt, indítsd újra a Fájlkezelőt, vagy töröld az ikongyorsítótárat; ellenőrizd, hogy az .ico több méretet tartalmaz-e.

2. Az ablak ikonja az alap

Az exe ikonja jó, a futó ablaké nem.

Ok és javítás

A Form.Icon nincs beállítva (az ApplicationIcon csak az exe fájlé). Állítsd be a Designerben vagy kódból.

3. A verzió 1.0.0.0 marad

A .csproj Version értéke 1.2.0, a Névjegy mégis a régit mutatja.

Ok és javítás

Régi build (Rebuild kell), vagy a AssemblyInfo.cs fájl is tartalmaz verziót (régi stílusú projektben) és ütközik. Egy forrás legyen: a .csproj.

4. A frissítés-ellenőrző FormatException-t dob

A ProductVersion értéke 1.2.0+a3f9c1.

Ok és javítás

A Version.Parse nem fogadja a +commit kiegészítést. Vágd le (Split('+')[0]) és használj TryParse-t (14.6 lecke).

5. A hivatkozás nem nyílik meg

A Process.Start(url) kivételt dob.

Ok és javítás

A modern .NET-ben UseShellExecute = true kell a ProcessStartInfo-ban (alapból false). A cím legyen érvényes https URI.

6. A Névjegy ablak „kijön” a tálcára

Az About külön ablakként jelenik meg, és kicsinyíthető.

Ok és javítás

ShowInTaskbar = false, MinimizeBox = MaximizeBox = false, FormBorderStyle = FixedDialog, és ShowDialog(this) a tulajdonossal.

Mini projekt: márkázott kiadás

Add meg a programodnak a „kész termék” külsejét: ikon, verzió, szerzői adatok és Névjegy ablak, és ellenőrizd mindenhol:

  1. Ikon készítése: rajzolj egyszerű, saját ikont (például egy kör, betű vagy szimbólum, 256×256 pixel, átlátszó háttérrel); konvertáld .ico-vá több mérettel (16, 32, 48, 256).
  2. Beállítás: add meg az ApplicationIcon értéket a .csproj-ban, és a Form Icon tulajdonságát; ellenőrizd a Fájlkezelőben, a tálcán és az ablak címsorában.
  3. Metaadatok: a .csproj-ban add meg a Product, Description, Company, Authors, Copyright, Version értékeket; Release fordítás után nézd meg az exe Tulajdonságok → Részletek fülét.
  4. Verzió osztály: készíts Verzio osztályt (a leckéből), amely egy helyen olvassa ki a verziót; használd a Névjegyben, a naplóban (induláskor), a frissítés-ellenőrzőben és az ablak címsorában (Program 1.2.0).
  5. Névjegy ablak: a leckében leírt tartalommal és beállításokkal; Súgó → Névjegy menüpont; using a ShowDialog körül.
  6. Licenc: add a projekthez a LICENSE fájlt (például MIT), és a Névjegyből legyen megnyitható; a harmadik fél licencfájl (14.4 lecke) is elérhető.
  7. Hibabejelentés gomb: a vágólapra másolt környezeti adatok, személyes adat nélkül; próbáld ki a beillesztést.
  8. Verzió-növelés: készíts verzio-novel.ps1 szkriptet, amely a .csproj <Version> értékét növeli (patch/minor/major); próbáld ki, hogy a Névjegy, a telepítő és a csomag neve egyezik-e.
  9. Ellenőrzés: Fájlkezelő ikonja, tálca ikonja, címsor ikonja, fájl Tulajdonságok, Névjegy, napló első sora: mindenhol azonos verzió és név.
Megoldás megnyitása (próbáld ki előbb önállóan!)
verzio-novel.ps1 (PowerShell; a projekt mappájából futtatva)PowerShell
param([ValidateSet("patch", "minor", "major")][string]$Tipus = "patch", [string]$Projekt = "Diaknyilvantarto.csproj")

$ErrorActionPreference = "Stop"

$xml = [xml](Get-Content $Projekt -Raw)
$csoport = $xml.Project.PropertyGroup | Where-Object { $_.Version } | Select-Object -First 1

if (-not $csoport) { throw "Nincs <Version> a projektfájlban." }

$reszek = $csoport.Version.Split(".") | ForEach-Object { [int]$_ }

switch ($Tipus)
{
"major" { $reszek[0]++; $reszek[1] = 0; $reszek[2] = 0 }
"minor" { $reszek[1]++; $reszek[2] = 0 }
"patch" { $reszek[2]++ }
}

$uj = $reszek -join "."

$csoport.Version = $uj
$csoport.AssemblyVersion = "$uj.0"
$csoport.FileVersion = "$uj.0"
$xml.Save((Resolve-Path $Projekt))

Write-Host "Új verzió: $uj"

Megjegyzés: a szkript az első, <Version> elemet tartalmazó PropertyGroup-ot módosítja, és a hozzá tartozó AssemblyVersion/FileVersion elemnek léteznie kell a projektfájlban (különben az érték hozzárendelése hibát adhat: ilyenkor hagyd ki ezeket, mert az SDK a Version-ből származtatja őket). A XML mentése átrendezheti a formázást. A telepítő AppVersion értékét (14.6 lecke) is érdemes ebből a számból előállítani, vagy az iscc /DVerzio=1.2.1 kapcsolóval átadni.

📷 Képernyőkép helye

Mit tegyél ide: a kész program ikonja a tálcán, a Névjegy ablak és a fájl Tulajdonságok → Részletek füle.Javasolt fájlnév: winforms-14-8-kesz.webp · Alt szöveg: A kész, márkázott program

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. Ikonkészlet

Készíts három ikonvariánst (16, 32 és 256 px), és hasonlítsd össze, melyik látszik jól a tálcán.

Egy lehetséges megoldás

A 16 pixeles változatot egyszerűsíteni kell (kevesebb részlet, vastagabb vonal, erősebb kontraszt); egyetlen .ico fájl mindhárom méretet tartalmazhatja. A tálcán és a Fájlkezelő kis nézetében a 16/32 px dönt.

2. Változásnapló a Névjegyben

Add a Névjegyhez Újdonságok gombot, amely a CHANGELOG.md tartalmát mutatja.

Egy lehetséges megoldás

A CHANGELOG.md kimenetbe másolása (CopyToOutputDirectory, 14.2 lecke), betöltés File.ReadAllText-tel (try–catch), megjelenítés egy csak olvasható, többsoros TextBoxban egy másik párbeszédablakban.

3. Verzió minden helyen

Ellenőrizd egy programodnál: hány helyen szerepel kézzel írt verziószám? Hogyan szüntetnéd meg?

Egy lehetséges megoldás

Keresd a szövegben (Ctrl+Shift+F) a 1. verziómintát: Form címe, Névjegy, telepítő, csomagnév. Egyetlen forrást (.csproj <Version>) hagyj meg, a többit kódból (Verzio osztály) vagy parancssori paraméterből töltsd.

Gyakorlótár: 6 további feladat

Három szinten gyakorolhatsz: alap, közepes és kihívás. Csak a próbálkozás után nyisd le a megoldást.

Alap szint

1. Ikonformátum

Miért .ico, és nem .png?

Megoldás megnyitása

Az .ico több méretet tartalmaz egy fájlban, a Windows ezt várja alkalmazásikonnak; a .png egyetlen méretű kép.

2. Hol állítod?

Melyik két helyen kell beállítani az ikont?

Megoldás megnyitása

Az ApplicationIcon (az exe ikonja) és a Form.Icon (az ablak ikonja).

Közepes szint

3. Verziófajták

Mire jó az AssemblyVersion, a FileVersion és az InformationalVersion?

Megoldás megnyitása

A .NET belső azonosítója; a fájl Tulajdonságok ablakában látszó verzió; a felhasználónak szóló verziószöveg.

4. SemVer

Melyik számot növeled: hibajavításnál, új funkciónál, törő változásnál?

Megoldás megnyitása

Patch (1.2.1); minor (1.3.0); major (2.0.0).

Kihívás szint

5. Egy forrás

Miért jó, ha a verzió egy helyen él?

Megoldás megnyitása

A telepítő, a Névjegy, a napló és a csomagnév ugyanazt mutatja; nincs eltérés, és a frissítés-ellenőrző is helyesen hasonlít.

6. Személyes adat

Mit gondolsz át, mielőtt kiírod a nevedet és az e-mail címedet a Névjegyre?

Megoldás megnyitása

A program nyilvánosan terjed: a kiírt személyes adat bárkihez eljut. Elég lehet egy becenév/szerzői név és egy külön, erre szolgáló kapcsolati cím; iskolai projektnél az intézmény szabályai is számítanak.

Gyors önellenőrzés

Válaszolj fejben, és csak utána nyisd le a választ.

1. Mi az .ico előnye?

Több méret egy fájlban, ezért minden helyen éles.

2. Mit ad az Application.ProductVersion?

A felhasználónak szóló verziószöveget (az InformationalVersion alapján).

3. Mi kerül a Névjegyre?

Név, ikon, verzió, leírás, szerző és szerzői jog, licenc, harmadik fél, kapcsolat, adatok helye, hibabejelentő gomb.

4. Miért ShowDialog using-gal?

A ShowDialog után a Form nem szabadul fel magától: a using megszünteti a szivárgást.

5. Miért kell licenc?

Megmondja, mit szabad mások számára a programoddal; licenc nélkül alapból nem szabad másolni.

6. Mire figyelsz az ikonnál?

Saját vagy nyílt licencű legyen, és ne használj védjegyet engedély nélkül.

7. Hogyan ellenőrzöd a márkázást?

Fájlkezelő, tálca, címsor, fájl Tulajdonságok, Névjegy és napló mindenhol ugyanazt a nevet és verziót mutatja.

Mit tudsz már?

  • Saját ikont állítasz be az exe-hez és az ablakhoz.
  • Verzió- és szerzői adatokat adsz meg a projektfájlban, és kódból olvasod ki őket egy forrásból.
  • Névjegy ablakot készítesz a szükséges tartalommal és hibabejelentő gombbal.
  • Ismered a szerzői jog és a licenc alapjait, és tudod, mit ne írj ki a névjegyre.

Következő lecke: Mini projekt: kész alkalmazás kiadása

A 14. fejezet záró projektje: egy teljes kiadás előkészítése, csomagolása, telepítése és ellenőrzése.