Hallo,
ich möchte, dass ein Formular nur bei fehlerfreier Eingabe oder bei Abbruch verlassen werden kann. <u>Wie geht dies am einfachsten</u> (d.h. mit Code an möglichst wenigen Stellen)? Zurzeit regele ich dies so:
<b>ButtonOK_Click()</b> prüft die Eingaben und setzt den private-bool-Parameter CanClose auf true oder false.
<b>ButtonExit_Click()</b> setzt CanClose = true.
<b>Form1_KeyUp()</b> prüft, ob <b>Alt-F4</b> gedrückt wurde, und beendet ggf. das Formular:
if(e.Alt & (e.KeyCode == Keys.F4) ) { CanClose = true; Close(); }
<b>Form1.CancelButton = ButtonExit</b> sorgt dafür, dass auch mit <b>ESC</b> das Formular verlassen wird.
<b>Closing()</b> wertet einfach CanClose aus: e.Cancel = !CanClose.
Beim Drücken des <b>X-Buttons</b> kann ich nicht CanClose = true setzen.
So funktioniert es. Aber kann man die verschiedenen Varianten nicht kürzer organisieren, d.h. ohne CanClose und mit weniger als 4 Ereignissen?
Danke für Ideen! Jürgen
ich möchte, dass ein Formular nur bei fehlerfreier Eingabe oder bei Abbruch verlassen werden kann. <u>Wie geht dies am einfachsten</u> (d.h. mit Code an möglichst wenigen Stellen)? Zurzeit regele ich dies so:
<b>ButtonOK_Click()</b> prüft die Eingaben und setzt den private-bool-Parameter CanClose auf true oder false.
<b>ButtonExit_Click()</b> setzt CanClose = true.
<b>Form1_KeyUp()</b> prüft, ob <b>Alt-F4</b> gedrückt wurde, und beendet ggf. das Formular:
if(e.Alt & (e.KeyCode == Keys.F4) ) { CanClose = true; Close(); }
<b>Form1.CancelButton = ButtonExit</b> sorgt dafür, dass auch mit <b>ESC</b> das Formular verlassen wird.
<b>Closing()</b> wertet einfach CanClose aus: e.Cancel = !CanClose.
Beim Drücken des <b>X-Buttons</b> kann ich nicht CanClose = true setzen.
So funktioniert es. Aber kann man die verschiedenen Varianten nicht kürzer organisieren, d.h. ohne CanClose und mit weniger als 4 Ereignissen?
Danke für Ideen! Jürgen
Comment