2010-08-13 24 views
4

Je me demande si quelqu'un peut m'aider?.Net WinForms TabControl Steals Focus sur l'activation des formulaires

Le problème que j'ai est un tabPage sous forme de fenêtre volant le focus sur la réactivation de formulaire. Le formulaire a un TabControl avec quatre ou cinq TabPages. Chaque page à onglet comporte de nombreux contrôles différents. Le scénario est le suivant: Un utilisateur parcourt quelques contrôles sur le premier TabPage et un nouveau formulaire est généré et affiché (par exemple, à partir d'un des événements Leave de TextBox) qui supprime le focus du premier formulaire, car il prend se concentrer. Les utilisateurs sélectionnent une valeur sur le nouveau formulaire et le ferment. - Je m'attendrais alors à ce que la forme originale sache où l'utilisateur a placé les onglets et mette l'accent sur ce contrôle.

Cependant, il semble que lorsque le formulaire est réactivé, il définit le focus, et non le retour à l'utilisateur, ou même le premier contrôle dans l'ordre de tabulation du TabPage actif. Au lieu de cela, il met l'accent sur le TabPage actif lui-même.

Y a-t-il un endroit autour de vous?

Merci et amicalement, Duane.

Répondre

1

J'ai créé des variables (dans la classe tab-control, pour les garder dans la portée) pour stocker la page courante et la dernière page visitée, créer aussi une variable pour stocker le contrôle qui a eu focus, utiliser un pointeur, peu importe.

Lorsque vous revenez, utilisez la variable pour restaurer le focus sur ce contrôle.

HTH

+0

+1 Pas une mauvaise idée, j'aurais pu faire la même chose. –

+0

Merci, je vais jeter un oeil à la mise en œuvre de cette technique quand je suis de retour au travail le lundi. : o) – Dib