AufgabeWenn der Status eines Steuerelemtens von "Disabled" nach "Enabled" wechselt, soll es automatisch den Focus bekommen.
Der Lösungsansatz ist klar: das Ereignis "EnabledChanged" nutzen und mit "sender.Focus();" den Focus setzen.
Das ProblemEs funktioniert schlicht nicht (zuverlässig). Das Ereignis wird bereits ausgelöst, während sich der Status noch ändert. Der Abfrage von "Enabled" innerhalb des Ereignisses zeigt dabei lediglich den nächsten Zustand an, nicht aber den aktuell Erreichten.
Die Folge ist, das "Focus()" auf ein nicht aktives Steuerelement angewandt wird. Damit rutscht der Fokus weg.
LösungDie Aktivierung des Steuerelementes über das Formular in dem es liegt.
AnwendungSetFocusedControl (MeinControl);
MeinControl.SetFocusedControl ();