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 :

Structure treeview drag'n drop


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut Structure treeview drag'n drop
    Bonjour à tous !

    Je suis actuellement sur un projet. Mon projet possède des treeviews où je peux faire du drag'n drop.

    Pour créer mes treeviews, il n'y a aucun soucis. Les éléments des treeviews viennent directement d'une base de données MSSQL.

    Pour avoir un id associé à chaque nom, j'ai utilisé des tableaux de structure comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Structure Ressources
    		Dim Id As Integer
    		Dim Name As String
    End Structure

    Jusque là, aucun problème, pour chaque structure, j'ai bien mon id associé a mon name, et je peux les récupérer.

    Mon problème vient du drag'n drop. J'utilise aussi les structures pour mes autres treeviews où je fais le drag'n drop.
    Je voudrai garder la structure entière lors du drag'n drop, c'est à dire que le name, mais aussi l'id se déplace dans mon treeview principal.
    Comment puis-je procéder ? Quelqu'un à déjà fait celà ?
    D'autant qu'il faut que je garde l'id, sinon, ce n'est pas très "pro" si je fais mes requêtes sur le nom

    M'avez-vous compris ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    une classe est en général mieux qu'une structure

    sinon pour le drag and drop tu peux passer une instance classe donc surement une structure aussi
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut
    Les classes, c'est toujours mieux ^^

    Mais en faite, je suis partie sur des structures dès le début, et je viens juste de penser à faire des classes.

    Si il est possible de faire du drag'n drop sur des structures, je ne vois pas du tout comment faire =/

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    comment fais tu du drag and drop ?

    de mémoire y a une méthode pour dire quelle donnée on veut mettre dans le démarrage du drag and drop
    et une méthode à utiliser au survol et drop pour vérifier que la donnée contenu dans le drag and drop est bien du type qu'on veut
    donc avec une classe ca ne pose pas de soucis
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Par défaut
    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
    Private Sub TreeView_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView.DragDrop, TreeViewEtapes.DragDrop
    	Dim OrigineNode As TreeNode = CType(e.Data.GetData("System.Windows.Forms.TreeNode"), TreeNode)
    	If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", False) Then
    		Dim pt As Point
    		Dim DestinationNode As TreeNode
    		'Utilisez PointToClient pour calculer l'endroit de la souris sur le destination TreeView.
    		pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
    		'Utilisez ce Point pour recevoir le noeud le plus proche dans la destination TreeView.
    		DestinationNode = CType(sender, TreeView).GetNodeAt(pt)
    		If (DestinationNode.Level < 2) Then
    			DestinationNode.Nodes.Add(CType(OrigineNode.Clone, TreeNode))
    		End If
    	End If
    End Sub
    Private Sub TreeView_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView.DragEnter
    	'L'événement DragEnter est déclenché lorsque l'utilisateur fait glisser pour la première fois le curseur de la souris au-dessus du contrôle durant une opération de glisser-déplacer.
    	If (e.Data.GetDataPresent("System.Windows.Forms.TreeNode")) Then
    		e.Effect = DragDropEffects.All
    	Else
    		e.Effect = DragDropEffects.None
    	End If
    End Sub
    Private Sub TreeView_DragLeave(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView.DragLeave
    	'Se produit lorsque l'utilisateur fait glisser un élément et que le pointeur de la souris n'est plus sur la zone cliente de cet élément
    	If (e.Data.GetDataPresent("System.Windows.Forms.TreeNode")) Then
    		e.Effect = DragDropEffects.All
    	Else
    		e.Effect = DragDropEffects.None
    	End If
    End Sub
    Private Sub TreeView_ItemDrag(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles TreeView.ItemDrag, TreeViewOperations.ItemDrag, TreeViewEtapes.ItemDrag
    	'Se produit lorsque l'utilisateur commence à faire glisser un élément.
    	If e.Button = Windows.Forms.MouseButtons.Left Then
    		DoDragDrop(e.Item, DragDropEffects.Move Or DragDropEffects.Copy Or DragDropEffects.All)
    	End If
    End Sub
    Voici comment je fais mon drag'n drop !

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    au lieu de passer un treenode tu peux passer une classe avec les infos dont tu as besoin

    ou alors faire une classe qui hérite de treenode avec des propriétés en plus

    car là si un utilisateur fait un drag drop d'un treeview à un autre treeview mais contenant autre chose le test va te dire que c'est un treenode alors qu'il ne contient pas le même type de données
    avec une classe personnalisée on peut éviter ce "problème"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ttk:treeview drag and drop.
    Par wiztricks dans le forum Tkinter
    Réponses: 10
    Dernier message: 17/08/2011, 14h17
  2. treeview drag et drop access
    Par jobe3141 dans le forum Access
    Réponses: 0
    Dernier message: 22/03/2011, 13h32
  3. Treeview: drag'n'drop à la windows explorer
    Par Gaadek dans le forum Delphi
    Réponses: 2
    Dernier message: 15/06/2006, 11h22
  4. [Débutant(e)][VB.NET] Drag and drop entre 2 treeviews
    Par - Manuella Leray - dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/10/2005, 15h54
  5. [VB.NET] Microsoft TreeView drag and drop ?
    Par bigtoof dans le forum ASP.NET
    Réponses: 7
    Dernier message: 24/05/2004, 14h50

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