2009-08-21 5 views
2

Beim Erstellen einer Instanz einer Schaltfläche in einer .NET WinForms-Anwendung wird die .CausesValidation-Eigenschaft auf True gesetzt. Warum sollten alle Schaltflächen Validierungsereignisse auslösen? Bedeutet dies nicht, dass bei allen Steuerelementen in einem Formular mit _Validating-Ereignissen das Ereignis standardmäßig aufgerufen wird, wenn die Schaltfläche den Fokus erhält?Warum ist .CausesValidation standardmäßig auf True für Schaltflächen eingestellt?

Ist das nicht Fokus gewinnt auf Knopfdruck ein wenig früh Validation Ereignisse zu nennen? Vor allem standardmäßig? Die Schaltfläche klicken Sie auf scheint eine viel geeignetere Standardzeit für die Validierung auftreten.

Ich frage, weil ich sicher sein möchte, dass ich das WinForms-Validierungsmuster richtig verstehe.

Antwort

3

Ich denke, es ist das sicherste von zwei Übeln. Tasten verarbeiten oft Daten; Wenn Sie nichts tun, ist der Standard, dass Ihre Daten validiert werden, und es wird ziemlich offensichtlich sein (da es nicht funktioniert), wenn Sie es nicht wirklich validieren wollten.

Im Gegensatz zu der Alternative - Sie tun nichts, und Ihre Schaltfläche funktioniert erfolgreich Ausführen von Aktionen auf ungültige Daten, und Sie bemerken es nicht, weil es subtil ist.

Die erste ist wahrscheinlich sicherer, auch wenn es ein wenig Reizung verursacht.

Verwandte Themen