Erreur en utilisation d'un .exe [Résolu]

Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
- - Dernière réponse : Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
- 7 déc. 2011 à 16:17
Bonjour,
Après pas mal de recherches je me permets de poster ici car la vraiment je n'arrive pas a résoudre ce probleme tout seul

Sur un logiciel qui est compilé et publié avec vs2010 premium

Setup installé sur une station sans visual studio avec powerpack 10.0.0 téléchargé et installé
j'ai l'erreur suivante :

Erreur en utilisation :

Lorsque je clique sur le button qui execute ce code :
Private Sub Retourvisiondeloin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Retourvisiondeloin.Click
        If langue = "en" Then
            messageaff = "Go back to Distant Vision"
            infoaff = "Information Software"
        Else
            messageaff = "Retourner à la vision de loin ?"
            infoaff = "Information logiciel"
        End If
        If MessageBox.Show(messageaff, infoaff, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
            With Visiondeloin
                calculok = False
            End With
            Me.Dispose() ' on ferme Visiondepres
            Visiondeloin.LabelHEHN.Visible = True
            Visiondeloin.RectangleShapeHEHN.Visible = True
            Visiondeloin.TSLIMG.Visible = True
            Visiondeloin.TSLIMG2.Visible = True
        End If
    End Sub


j'ai l'erreur suivante :



dont le detail de la pile d'appel me donne :

Consultez la fin de ce message pour plus de détails sur l'appel du débogage
juste-à-temps (JIT) à la place de cette boîte de dialogue.

************** Texte de l'exception **************
System.InvalidOperationException: La collection a été modifiée*; l'opération d'énumération peut ne pas s'exécuter.
à System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
à System.Collections.Generic.List`1.Enumerator.MoveNextRare()
à System.Collections.Generic.List`1.Enumerator.MoveNext()
à Microsoft.VisualBasic.PowerPacks.ShapeCollection.Dispose(Boolean disposing)
à Microsoft.VisualBasic.PowerPacks.ShapeContainer.Dispose(Boolean disposing)
à System.ComponentModel.Component.Dispose()
à System.Windows.Forms.Control.Dispose(Boolean disposing)
à System.Windows.Forms.Form.Dispose(Boolean disposing)
à Calculateur.visiondepres.Dispose(Boolean disposing)
à System.ComponentModel.Component.Dispose()
à Calculateur.visiondepres.Retourvisiondeloin_Click(Object sender, EventArgs e)
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Setup installé sur la même station avec visual studio
pas d'erreur comme si la presence de VS resolvait le probleme.

Sur certains forums, j'ai vu que la dll du powerPack livré avec visual studio 2010 et celle livré avec le powerpack que l'on télécharge sur internet ne sont pas les memes (powerPack 10.0.0)

Tout semble tourner autour de PowerPack mais honnetement, je suis incapable de resoudre ce probleme tout seul.

Merci beaucoup de votre aide
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130
3
Merci
Bonjour,

Je pense que pour fermer la form, préfères utiliser la méthode Close plutôt que Dispose.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
0
Merci
J'ai aussi un programmeur qui me dit :

Le probleme vient du controle ShapeContainer qui ne prevoit pas de methode Dispose pour sa liste interne de controles Shapes.
Close appelle dispose
Le form appelle Dispose sur chacun de ses controles y compris ShapeContainer
Shapecontainer est depourvue-semble-t-il de ce mecansisme.


Je comprends ce qu'il veut dire mais je ne vois absolument pas comment resoudre la chose non plus
Commenter la réponse de Attila54
Messages postés
14457
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2019
130
0
Merci
Bonjour,

Actives Option Strict et Option Explicit (propriétés du projet).

Concernant l'exception :
La collection a été modifiée*; l'opération d'énumération peut ne pas s'exécuter.

En clair, tu as un For Each et tu supprimes ou ajoutes des éléments dans la collection.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Commenter la réponse de NHenry
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
0
Merci
Bonjour NHenri

merci de ta reponse

Option Strict et Option Explicit sont toujours sur on depuis le debut
J'ai bien cherché et je ne vois pas de "for each" c'est bien ce qui m'embête
Commenter la réponse de Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Statut
Membre
Dernière intervention
21 novembre 2013
0
Merci
Re NHenri

probleme résolu,
en fait, j'avais zappé les 2 endroits ou les lignes en erreur etaient indiquées grace au pdb
J'ai mis des try catch ou ils manquaient et des close en lieu et place des dispose
Tout fonctionne bien maintenant

Merci bien de ton aide
Commenter la réponse de Attila54