2010-07-13 8 views
0

J'ai un formulaire MDI avec 3 fenêtres enfants.GotFocus() et MDI Enfants

  • Le MDI commence vide.

  • Chaque enfant peut être ouvert une fois à partir du menu.

Quand j'ouvre plusieurs fenêtres et fermer la partie supérieure on devrait se concentrer, mais le nouveau événement GotFocus() de forme active des enfants ne se déclenche pas.

Private Sub frmMain_gotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus 
... 
End Sub 

Répondre

1

Devinez mal. L'événement Enter ou l'événement Activated résoudra votre problème.

Dans la programmation Windows Forms, vous souhaiterez généralement éviter les événements GotFocus et LostFocus. Ils sont souvent cachés dans le concepteur, mais pas toujours. Respectivement, les événements Enter et Leave sont leurs remplacements, ils sont générés à partir de l'état logique de l'interface utilisateur au lieu des messages Windows bruts. Fait une différence lors de l'utilisation de validation et MDI.

Activé est le caractère "naturel" puisque le focus réel passe à un contrôle enfant de cette forme.

0

Lorsque vous créez des formulaires enfants MDI du parent MDI, vous devez souscrire le formulaire parent MDI à l'événement GotFocus du formulaire enfant MDI. Que lorsque des événements de focus se produisent sur votre enfant MDI, votre parent MDI est averti. Lorsqu'un formulaire est fermé/ouvert, le formulaire suivant de l'ordre Z du MDI doit être automatiquement sélectionné, et si vous vous abonnez à l'événement, votre parent MDI peut agir de manière appropriée et afficher vos données.

Questions connexes