Erreur en utilisation d'un .exe

Résolu
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 - 6 déc. 2011 à 15:15
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

5 réponses

NHenry Messages postés 15117 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 10 mai 2024 159
7 déc. 2011 à 10:49
Bonjour,

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

3
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
6 déc. 2011 à 15:28
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
0
NHenry Messages postés 15117 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 10 mai 2024 159
6 déc. 2011 à 20:28
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
---
0
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
7 déc. 2011 à 08:53
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
7 déc. 2011 à 16:17
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
0
Rejoignez-nous