2010-12-08 40 views
8

J'ai créé une application Windows en C# avec deux contrôles utilisateur.Comment appeler une méthode après que le contrôle utilisateur est visible

Lorsque le formulaire est chargé, le premier contrôle utilisateur est chargé (et affiché) et lorsque je clique sur Suivant, je charge le second contrôle utilisateur.

Maintenant, je veux qu'une méthode de ce contrôle utilisateur soit appelée une fois que le contrôle utilisateur est visible.

Je ne suis pas capable de le faire. Si j'appelle la méthode de l'événement Load, elle est déclenchée avant que le contrôle ne soit visible.

Quelqu'un peut-il me guider sur la façon dont je devrais faire l'appel de méthode après que le contrôle est visible.

+2

Je viens d'essayer de le faire, l'autre jour. Pour ce que ça vaut, je me suis rapidement rendu compte que tout ce qui me forçait à chercher un tel événement était un signe que ma conception était fausse. Qu'est-ce que vous essayez de faire ici? –

Répondre

3

Vous souhaiterez probablement utiliser l'événement VisibleChanged.

Par exemple:

userControl2.VisibleChanged += new EventHandler(this.UserControl2VisibleChanged); 

private void UserControl2VisibleChanged(object sender, EventArgs e) 
{ 
    if(userControl2.Visible) 
    { 
     CallMyMethodIWantToRunWhenUserControl2IsVisibleHere(); 
    } 
} 
+2

'VisibleChanged' peut ne pas faire ce que le demandeur recherche. Il n'est pas nécessairement levé lorsque le 'UserControl' est chargé pour la première fois car sa visibilité ne change pas réellement *. (La propriété 'Visible' est" True "par défaut.) –

+0

La réponse mise à jour avec l'exemple d'appel d'une méthode une fois que UserControls est visible. – SwDevMan81

+0

Vous pouvez toujours utiliser userControl2.Visible = true; sur init et déclenchez votre méthode .. :) – Pabuc