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 :

Supprimé un objet héritant de panel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Par défaut Supprimé un objet héritant de panel
    Bonjour à tous.

    J'ai comme projet actuel une petite application qui se redimensionne suivant son contenu. En fait j'ai un Form dans lequel j'ajoute des classes héritantes de la classe Panel. Ensuite mon form prend les dimensions de ces classes. Donc en gros pour l'instant j'ai une classe principale, qui constitue l'interface principale de l'utilisateur. J'ai aussi une classe ficEnCours, qui s'affiche quand l'utilisateur fais une manip qui risque de faire perdre à l'utilisateur les données non enregistrés du fichier en cours.

    Ainsi quand je passe de la classe principale à la classe ficencours, je passe classe principale en visible = false. Mais en revanche quand je passe de la classe FicEnCours à Principale, je ne veux plus garder cette classe et je veux la supprimer.

    Alors j'ai essayé plusieurs système : dispose(), remove() mais j'avoue ne pas avoir essayer les deux.

    remove me parraissait bien jusqu'à ce que je me rende compte qu'en faites il ne supprimait pas l'objet mais juste sa référence dans la liste des control affiché. Du coup quand je recréais une classe ficEnCours, un click sur un bouton correspond au même événement pour les deux objets de la classe ficEnCours et donc la procédure lié s'exécute n fois.

    Alors la question, comment supprimé réellement cet objet FicEnCours.
    Petite précision qui me vient à l'esprit : peut-être que j'ajoute mal ma classe à liste d'affichage. Je créais ma classe, lui donne ses propriétés largeur hauteur gauche et haut, et lui assigne un parent. Peut-être que c'est mal et que mon problème vient de là ? Qu'en pensez vous ?

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 182
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 182
    Par défaut
    Bonjour.

    Peux-tu nous montrer le code qui :
    - créer ton instance de la classe héritant de panel
    - la supprime

    A priori, le .dispose devrait suffir, donc le probléme est sans doute ailleurs.

    Cdt.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Par défaut
    Instanciation dans une fonction du code de mon Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     RefObject = New FicEnCours("Un fichier est en cours d'utilisation." + (Chr(13)) + "Cette ouverture va écraser les modifications qui n'ont pas été enregistré." + (Chr(13)) + "Voulez-vous continuer ?")
    Suppression dans une fonction de ma classe FicEnCours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MCDForm.RefObject = MCDForm.RefPrincipale MCDForm.RefPrincipale.Dimensionnement()
    Me.Dispose()
    Me.Finalize()
    Et s je réinstancie un objet de la classe FicEnCours, j'ai un problème sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RefObject.Visible = True
    Il me dit que je n'ai pas géré l'erreur dû au dispose()
    L'exception System.ObjectDisposedException n'a pas été gérée
    Message="Cannot access a disposed object. Object name: 'Label'."
    ObjectName="Label"
    Source="Microsoft.VisualBasic"
    Personnellement je sèche depuis quelques semaines

    Merci de ton aide

  4. #4
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 182
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 182
    Par défaut
    Bonjour.

    L'erreur que tu as correspond à une tentative d'accés à une méthode d'un objet "supprimé".

    Lorsque tu fais ton RefObject.Visible, l'objet RefObject a déjà été disposé ou n'a pas été recréé.

    Le code ne permet pas de déterminer pourquoi, mais cela doit pouvoir ce trouver assez facilement en mode Debug.

    Au besoin, poste (si ça n'est pas trop lourd), le code complet de la form et de ton control FicEnCours.

    Cdt.

Discussions similaires

  1. Comment supprimer des objets
    Par akrobat dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 17/06/2006, 11h48
  2. [debutant]Supprimer un objet instancié
    Par mikedavem dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2006, 00h19
  3. [VB.NET][2.0]retirer en une fois tous les objets d'un panel
    Par Golzinne dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/03/2006, 15h06
  4. Supprimer un objet
    Par ana2sb dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 20h34
  5. [API] Supprimer un objet
    Par Halleck dans le forum Windows
    Réponses: 11
    Dernier message: 10/04/2004, 01h34

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