Probleme explorer de fichier en vb

Résolu
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014 - 30 mai 2014 à 09:52
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014 - 3 juin 2014 à 11:12
Bonjour,
voila j'ai un souci je suis entrain de créer un explorateur de fichier comme dans Windows mais voila le problème c'est que j'ai une erreur et je n'arrive pas à trouver comment la résoudre.

#Region "   IconIndex Loading Thread"
Private Sub LoadLV1Images()
Dim ts As New ThreadStart(AddressOf DoLoadLv)
Dim ot As New Thread(ts)
#If Ver = 2013 Then
ot.SetApartmentState(ApartmentState.STA)
#Else
ot.ApartmentState = ApartmentState.STA
#End If
Event1.Reset()
ot.Start()
End Sub

Private Sub DoLoadLv()
Dim lvi As ListViewItem
For Each lvi In lv1.Items
lvi.ImageIndex = SystemImageListManager.GetIconIndex(lvi.Tag, False)
Next
Event1.Set()
End Sub
#End Region

Private Sub Lv1_VisibleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Lv1.VisibleChanged
If Lv1.Visible Then
SystemImageListManager.SetListViewImageList(Lv1, True, False)
SystemImageListManager.SetListViewImageList(Lv1, False, False)
End If
End Sub

l'erreur ce trouve
For Each lvi In lv1.Items
mais je ne sais pas pourquoi
merci d'avance pour vos réponse

10 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
30 mai 2014 à 11:26
Bonjour
l'erreur ce trouve For Each lvi In lv1.Items
Oui mais quel est le message d'erreur ?
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
30 mai 2014 à 12:51
merci d'avoir répondu
voici le message d'erreur

Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans System.Windows.Forms.dll

Informations supplémentaires : Opération inter-threads non valide : le contrôle 'Lv1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 mai 2014 à 19:53
Erreur entre 2 threads (thread perso et thread d'affichage), un grand classique.
Une recherche rapide donne pas mal d'info sur le sujet.

http://www.vbdotnetforums.com/windows-forms/50272-cross-thread-operation.html
http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=194

Aide complémentaire :
Me.InvokeRequired
Me.Invoke
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
Modifié par papayou12 le 30/05/2014 à 20:20
merci pour ta réponse mais je ne vois pas ou je doit mettre le
Me.InvokeRequired
Me.Invoke
car j'ai regarder un peut partout et tester plein de truc mais rien n'y fait
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 mai 2014 à 20:32
As-tu regardé l'aide des fonctions en question ?
As-tu recherché un peu ?

Ces fonctions vont te dire et te permettre d'executer u ne fonction dans le thread d'affichage et non dans le thread que tu as créé
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
30 mai 2014 à 20:51
je regarderai sa et je te tiens au courant merci
0

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

Posez votre question
Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 15 avril 2024 656
30 mai 2014 à 20:28
Bonsoir, sujet déplacé dans la catégorie VB.Net
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
31 mai 2014 à 11:39
j'ai regarder t je n'ai toujours rien compris au thread
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
31 mai 2014 à 19:46
InvokeRequired te retourne un booléen indiquant si tu dois utiliser Invoke car tu pars d'un autre thread.

Invoke a besoin d'un Delegate (grosso modo l'équivalent un pointeur de fonction) pour lancer ta fonction.

En gros :
Me.Invoke(Sub() Ma_ fonction(ParametresEventuels) )
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
2 juin 2014 à 09:13
Merci pour tes réponses mais toujours pas compris car c'est sur le
for each lvi in lv1.items qu'il me mais l'erreur et non pas sur thread
mais ce n'ai pas grave je vais voir autrement.
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
2 juin 2014 à 10:35
C'est bon j'ai trouver comment résoudre le problème en mettant
CheckForIllegalCrossThreadCalls = False
merci de votre aide
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
2 juin 2014 à 19:47
Cela revient à soigner une fracture avec un pansement ...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
Modifié par NHenry le 2/06/2014 à 20:36
En gros, voici un code exemple :

Soit un gestionnaire d'évènement Button1_Click(Sender, Arg)

Sub ...
If Me.InvokeRequired Then
me.Invoke(sub() Button1_Click(sender,Arg))
return
End If
...
End Sub


If a Dalek is a being of pure hate...what happens when Cadence uses her love spell on one?
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
0
papayou12 Messages postés 48 Date d'inscription mercredi 4 septembre 2013 Statut Membre Dernière intervention 12 juin 2014
3 juin 2014 à 11:12
Merci
0
Rejoignez-nous