Question

J'ai une fenêtre C # application de formulaires. La façon dont j'ai actuellement il mis en place, quand Form1_Load () exécute des contrôles pour les données non enregistrées récupérées et si elle trouve certains, il demande à l'utilisateur si elles veulent ouvrir ces données. Lorsque le programme est exécuté cela fonctionne bien, mais la boîte de message apparaît tout de suite et la principale forme de programme (Form1) ne montre pas que lorsque l'utilisateur clique oui ou non. Je voudrais que le Form1 pour faire apparaître d'abord, puis l'invite de boîte de message.

Maintenant, pour contourner ce problème avant d'avoir créé une minuterie dans ma forme, a commencé la minuterie dans la méthode Form1_Load (), puis a effectué le contrôle et l'utilisateur rapide dans la première minuterie Cochez l'événement. Cette technique permet de résoudre le problème mais semble qu'il pourrait y avoir une meilleure façon.

Avez-vous les gars ont de meilleures idées?

Edit: Je pense que je l'ai aussi utilisé un travailleur de fond pour faire quelque chose de similaire. Il semble juste un peu loufoque de passer par toute la peine d'invoquer la méthode pour revenir au fil de forme et de toutes ces conneries juste pour l'avoir retardé de millisecondes couple!

Était-ce utile?

La solution

J'utiliser Form1_Shown ()

Autres conseils

  • L'utilisation d'un Windows.Forms.Timer est une bonne et stable, technique bien connue et facile à comprendre pour faire ce que vous voulez. Je voudrais éviter tout autre objet de la minuterie.

  • L'événement Shown du formulaire fonctionne bien.

  • surcharge / remplacer la méthode Show. (Ma technique préférée pour le contrôle de plus.) Dans cette méthode, je ferais le contrôle nécessaire. Lorsque vous êtes prêt, j'appeler la méthode base.Show, puis faire tout autre traitement, comme des boîtes de message, les invites, l'enregistrement, ou autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top