bonjour a tout le monde
comment allez vous ?

dans ma form principale (form1) j'ai un bouton qui ouvre une autre form
(form2) seulement quand je ferme cette form2 avec se code me.close() pour revenir a form1 tout plante ma form1 plante et ne réponde plus, et si je ferme ma form2 avec se code me.hide() sa ne plante pas mais je ne veut pas la cacher je veut fermer ma form2
sa a fait sa quand j'ai rajouter une classe pour que je voit mon disque dans la treeview qui se trouve donc dans la form2
voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
   Private c As ListerRepertoire
 
    Private Sub FTP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        c = New ListerRepertoire(TreeView1) 'instancie la classe
        c.ListerMesRepertoire("C:\", Nothing) 'liste le répertoire
 
    End Sub
et voici le code de la classe:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Imports System.IO
 
Public Class ListerRepertoire
    Private TheTreeview As TreeView
    Private Delegate Function TN_Delegate(ByVal a As TreeNode) As Int32
 
    Public Sub New(ByVal TV As TreeView)
        TheTreeview = TV 'affecte la Treeview
    End Sub
 
    Public Sub ListerMesRepertoire(ByVal Rep As String, ByVal Parent As TreeNode)
        Try
            'Récupère la liste des entrées du répertoire
            Dim Liste As String() = Directory.GetFileSystemEntries(Rep)
            Dim Entree As String
 
            For Each Entree In Liste 'Pour chaque entrée de la liste
                Dim TmpName As String = Microsoft.VisualBasic.Mid(Entree, Len(Rep) + 1) 'On découpe proprement le nom du fichier ou répertoire
                TmpName = Microsoft.VisualBasic.Replace(TmpName, "\", "") 'On enlève les caractères parasites !
 
                If File.Exists(Entree) Then     'Si c'est un fichier
                    AddNode(TmpName, True, Parent)  'On crée un élément fichier dans le treeview
                Else    'Si  c'est un répertoire
                    Dim TmpNode As TreeNode 'Var tempo pour sauver le noeud du treeview
                    TmpNode = AddNode(TmpName, False, Parent) 'On ajoute le rep dans le treeview
                    ListerMesRepertoire(Entree, TmpNode) 'On liste le contenus de ce répertoire
                End If
            Next Entree
        Catch Ex As System.UnauthorizedAccessException 'si le répertoire est protégé
            Exit Sub
        Catch e As Exception 'en cas d'erreurs
            MsgBox("Erreur : " & e.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
    Private Function AddNode(ByVal StrNom As String, ByVal BlFile As Boolean, ByVal Parent As TreeNode) As TreeNode
        Try
            Dim TmpNode As TreeNode      'Noeud Pour les manipulations dans la function
 
            If Not Parent Is Nothing Then ' Si Parent n'est pas à nothing
                'TmpNode = Parent.Nodes.Add(Str_Nom) 'On crée un élément fils
                Dim no As New TreeNode
                no.Text = StrNom
                With TheTreeview
                    .Invoke(New TN_Delegate(AddressOf Parent.Nodes.Add), New Object() {no})
                End With
                TmpNode = no
            Else ' Si Parent Est à nothing c sans doute le premier élément du treeview ou une racine
                'TmpNode = TreeView1.Nodes.Add(Str_Nom)
                Dim no As New TreeNode
                no.Text = StrNom
                With TheTreeview
                    .Invoke(New TN_Delegate(AddressOf TheTreeview.Nodes.Add), New Object() {no})
                End With
                TmpNode = no
            End If
 
            Application.DoEvents()  'histoire de faire beau ^^ Non je pense que ca limitera le risque d'erreur
            Return TmpNode
        Catch ex As Exception
            Return Nothing
            MsgBox(ex.ToString)
        End Try
    End Function
End Class
ps: normalement sa affiche mon disque C dans ma treeview mais quelque fois il m'affiche tout les dossier et quelque fois la moitié je comprend pas pourquoi

merci d'avance,