Bonjour,
Cette erreur peut survenir quand on quitte une form en cliquant sur la croix et que l'on utilise le visualbasicpowerpack 10.0 pour traiter des gérer des shapes.La collection a été modifiée*; l'opération d'énumération peut ne pas s'exécuter
Pour éviter cette erreur, il faut intégrer ce morceau de code en entete de nomdeform.design
En appliquant ceci plus d'erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class EXEMPLE Inherits System.Windows.Forms.Form 'Form remplace la méthode Dispose pour nettoyer la liste des composants. 'Guintini Gilles on gére lineshape2.dispose() pour éviter d'avoir erreur énumération quand quitte la forme 'en cliquant sur la croix ! <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then LineShape2.Dispose() ! ici il vous faudra énumérer TOUS vos composants SHAPE components.Dispose() End If Finally LineShape2.Dispose() MyBase.Dispose(disposing) End Try End Sub Protected Sub DisposeShapeContainer(ByVal AShapeContainer As Microsoft.VisualBasic.PowerPacks.ShapeContainer) If AShapeContainer IsNot Nothing Then If AShapeContainer.Shapes IsNot Nothing Then Dim tshapes As New Generic.List(Of Microsoft.VisualBasic.PowerPacks.Shape) For Each tshape As Microsoft.VisualBasic.PowerPacks.Shape In AShapeContainer.Shapes tshapes.Add(tshape) Next AShapeContainer.Shapes.Clear() AShapeContainer.Shapes.Dispose() For Each tshape As Microsoft.VisualBasic.PowerPacks.Shape In tshapes tshape.Dispose() Next End If AShapeContainer.Dispose() End If End Sub
Une idée ?
Merci.
Partager