IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Glisser-Déposer depuis un treeview vers une listview


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Glisser-Déposer depuis un treeview vers une listview
    Bonjour,

    J'ai un treeview de type :
    - animaux
    - - chien
    - - chat
    - - souris
    - VIP
    - - Astérix
    - - Obélix
    - - Falbala

    Puis une listview de plusieurs colonnes en partie renseignée.
    VIP | compagnon
    Astérix.| Obélix
    Falbala.| ...
    Obélix..| ...
    ......... | souris

    Depuis le treeview, j'aimerai faire glisser une copie d'item vers l'un des champs de la listview.
    Par exemple, si je veux compléter la colonne "compagnon" de la ligne "Obélix", je voudrais récupérer "chien" du treeview et le faire glisser vers la ligne "Obélix" de la listview.

    Est-ce l'un d'entre vous pourrait me transmettre un bout de code qui me bloquerait ?

    merci.

  2. #2
    Membre du Club Avatar de Chapeau_Bas
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Décembre 2010
    Messages : 44
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    A quel endroit êtes-vous bloqué exactement? La gestion du glisser/déposer dans son ensemble c'est quelque chose de vague comme problème. ^^

    Il faut gérer les événements dragEnter, DragDrop et DragOver.
    (Bien activer le glissement pour le contrôle donnant et activer la réception pour le récepteur.)

    Petit exemple:
    DragEnter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            If e.Data.GetDataPresent(DataFormats.Text) Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.None
            End If
    DragOver:
    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
            Dim TypeNode As String = "System.Windows.Forms.TreeNode"
     
            Dim Delai_Expansion As Integer = 800
            Dim Delai_Collaps As Integer = 2000
     
            Static Dernier_Index As Integer
            Static Dernier_Cpt As Integer
            Dim Compteur_Tick As Integer
     
            Dim pt As Point = TreeView.PointToClient(New Point(e.X, e.Y))
            Dim targetNode As TreeNode = TreeView.GetNodeAt(pt)
     
            If targetNode Is Nothing Then
                TreeView.SelectedNode = Nothing
            Else
                TreeView.SelectedNode = targetNode
            End If
     
            If targetNode Is Nothing Then
            Else
                If Dernier_Index = targetNode.Index Then
                    If Dernier_Cpt = 0 Then Dernier_Cpt = Environment.TickCount
     
                    Compteur_Tick = Environment.TickCount
     
                    If Compteur_Tick - Dernier_Cpt >= Delai_Collaps Then
                        If targetNode.IsExpanded Then targetNode.Collapse()
                        Dernier_Cpt = Environment.TickCount
                    ElseIf Compteur_Tick - Dernier_Cpt >= Delai_Expansion Then
                        targetNode.Expand()
                        If Not targetNode.IsExpanded Then targetNode.Expand()
                    End If
                    If Compteur_Tick - Dernier_Cpt <= Delai_Collaps Then
                    End If
                Else
                    Dernier_Cpt = Environment.TickCount
                End If
                Dernier_Index = targetNode.Index
            End If

    DragDrop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'Récupère le texte:
            Ref = e.Data.GetData(DataFormats.Text)
     
    'Récupère la node:
            Dim pt As Point = TreeView.PointToClient(New Point(e.X, e.Y))
            Dim X As TreeNode = TreeView.GetNodeAt(pt)
    Voila, normalement avec sa vous êtes capable de récupérer le texte ou l’élément déplacer dans un treeview. A mon humble avis, le fonctionnement ne doit pas beaucoup différer pour un listeView. (Bien que je puisse me tromper, je n'ai pas d'exemple de sa sous la main.)

    En espérant vous avoir aider.
    Bonne fin de journée.

Discussions similaires

  1. [XL-2003] Glisser déposer depuis une frame vers une autre frame
    Par sebrou01 dans le forum Excel
    Réponses: 4
    Dernier message: 27/04/2015, 09h03
  2. Tansférer les données d'un array vers une listview
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2009, 19h42
  3. Drag and drop élement d'un treeview vers une autre
    Par djo_matrix dans le forum ASP.NET
    Réponses: 0
    Dernier message: 14/04/2009, 11h02
  4. [VB.net]inserer un treeview dans une listview
    Par mich@ dans le forum VB.NET
    Réponses: 1
    Dernier message: 13/03/2007, 20h21
  5. Réponses: 6
    Dernier message: 15/09/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo