Zitat:das sind alles schöne Lösungen, gefällt mir gut. Ich glaube aber, der Grund dafür, dass man nicht die Strings (selbstgewählten Titel) des Tabs (=Enum) anspringen kann ist der, dass das Risiko ungleich höher ist, einen Schreibfehler im String (Titel) zu machen! Dann findet auch VDBs Lösung nicht die richtige Seite! Dass ist hier im speziellen nicht besonders wichtig, weil nur wenige Strings verwendet werden. Generell gilt aber, dass man z.B. den nächsten State einer State Machine auch lieber mit Enums anspringt, die man schön als StrictTypeDef speichern kann. Eine Änderung/Erweiterung des Enums um zusätzliche States wird dann sofort überall wirksam. Wenn man das mit Strings machen würde (theoretisch und praktisch möglich), bestünde die Gefahr, dass man im String Schreibfehler macht (im Case oder in der Konstante), und schon funktioniert die Statemachine nicht mehr. Man verwendet den "State-String" vielleicht 25 Mal und macht einen Schreibfehler...den zu finden wird unter Umständen schwierig. Und dann bleibt man doch lieber generell bei Enums/numerischen Werten, da ist man auf der sicheren Seite...
Da gib ich dir völlig recht. Für sowas sollte es immer einen Default-case geben mit Assertion (z.B. MessageBox oder so) um auf den Fehler hin zu weisen. Meine Lösung setzt glaube ich auch den Error Out wenn der String nicht im Enum vorhanden ist.
Gruß
VDB