IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Regénération des objets si le form est appelé plusieurs fois


Sujet :

VB.NET

  1. #21
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Faut dire, quand on ce mets à squatter un Post, on fait pas semblant !!
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  2. #22
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par mactwist69 Voir le message
    Ca vient du fait que DialogResult effectue un Dispose().
    Le dialogresult ne fait fait pas de dispose.

    Citation Envoyé par mactwist69 Voir le message
    L'évènement Load se déclenche à chaque fois que l'on appel la fonction Show ou ShowDialog.
    Pas dans le cas ou tu hide une fenêtre ouverte avec un show.

    Tu as plusieurs cas de figures.

    Appel permissif de VB (ne pas utiliser)
    Tu appeles directement le nom de la form
    Form1.show : il cré une nouvelle instance (joue le load) ou rappele celle caché par hide (ne joue pas le load)

    Form1.showdialog : il cré une nouvelle instance si elle n'existe pas (joue le load), la rapelle si elle existe (joue le load).

    Tu crés tes instances
    dim f as form1 = new form1 .
    f.show : Si tu hide tu peux de nouveau faire un show (mais il ne joue pas le load), si tu fermes il faut recréer l'instance.

    dim f as form1 = new form1 .
    f.showdialog : tu l'appeles (joue le load) ou la rappeles (si tu l'avais fermée) elle se réaffiche (et joue le load)
    la fenêtre est cachée et tu dois faire le dispose pour libérer définitivement (le dialogresult n'a rien a voir)

    form2 ouvert par ShowDialog ; Form3 ouvert par Show ; fermé par croix (sauf cas hide - indiqué dans le test)

    appel par nom

    Nom - clic bouton ouvre fenêtre
    load form2
    load form3
    click bouton hide form3
    Nom - clic bouton ouvre fenêtre
    load form2
    ................... <-- pas de load form3 car hide (et show)
    ferme form3 par la croix
    Nom - clic bouton ouvre fenêtre
    load form2
    load form3

    appel instance

    instance - clic bouton ouvre fenêtre - dispose non fait pour form2 ouvert en showdialog
    load form2
    load form3
    click bouton hide form3
    instance - clic bouton ouvre fenêtre
    load form2
    ................... <-- pas de load form3 car hide (et show)
    ferme form3 par la croix
    instance - clic bouton ouvre fenêtre
    load form2
    instance form3 inexistante
    Si tu hide une fenêtre ouverte par show, au prochain show le load n'est pas joué
    Si tu fermes une fenêtre ouverte par showdialog (elle est caché), mais au prochain showdialog le load est joué.

    Mais pour les fenêtres modales, c'est à toi de faire le dispose le dialogresult ne fait rien, il donne juste le résultat du choix.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #23
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Merci de ces précisions.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/03/2015, 19h02
  2. Réponses: 1
    Dernier message: 03/08/2012, 15h06
  3. Accéder à des objets d'une Form à partir d'une classe
    Par kinouseb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/01/2007, 18h07
  4. Réponses: 3
    Dernier message: 09/01/2007, 15h27
  5. Réponses: 13
    Dernier message: 09/05/2006, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo