A mellékelt példa első Form-ján lehetőségünk van egy másik Form megjelenítésére, melynél használhatjuk az Enter és Esc billentyűt, melyek egyenértékűek az OK és a Mégsem gombbal.
Ezt úgy érhetjük el, hogy az Form tulajdonságai közül az AcceptButton property-nél kiválasztjuk az OK gombunkat, míg a CancelButton property-nél a Mégsem gombot.
A Mégsem gomb választásakor a Form automatikusan bezárul. Az OK gomb esetén erről nekünk kell gondoskodnunk.
private void button1_Click(object sender, System.EventArgs e)
{
Close();
}
Ez azért van így, mert ha a felhasználó az OK gombbal zárja a munkáját a Form-on, akkor elképzelhető, hogy annak tényleges bezárása előtt szükséges valamilyen egyéb feladatot elvégezni (például a begépelt adatok helyességét ellenőrizni).
Ahhoz, hogy a Form2 tényleg dialóg ablakként jelenjen meg, a FormBorderStyle property-nél a FixedDialog értéket kell választanunk.
További tennivalónk, hogy a két gombhoz hozzárendeljünk két értéket, mely a dialóg ablakunk ún. visszatérési értéke lesz. Ezt a gombok DialogResult property-jénél tehetjük meg.
A Form1-en a Form2 megjelenítése az alábbiak szerint történik:
Létrehozunk egy új példányt a Form2 osztályból.
private void button1_Click(object sender, System.EventArgs e)
{
Form2 f = new Form2();
Majd a ShowDialog függvény hívásával megjelenítjük azt.
Ezen a ponton a programunk futása csak a Form2 bezárása után folytatódik, így itt ellenőrizhetjük a Form2 DialogResult property-jének értékét, mely attól függ, hogy az OK, vagy a Mégsem, illetve az Enter vagy az Esc billentyűvel zártuk-e a Form-ot, valamint attól is függ, hogy az egyes nyomógombok DialogResult property-jében milyen értéket választottunk.
label1.Text = f.DialogResult.ToString();
}