Actuellement, j'ai mis en place un drag & drop entre deux noeuds de mon
treeview.
Le problème est que lorsqu'il est nécessaire de faire défiler l'ascenseur du
treeview pour aller de noeud de départ au noeud cible, et bien ça ne le fait
pas automatiquement comme dans d'autre application. J'ai cherché et j'ai
trouvé l'évènement DragLeave qui est levé lorsque durant un drag, le curseur
sort du controle. Maintenant, je ne trouve pas la méthode permettant de dire
à l'ascenseur du treeview de descendre ou monter. Quelqu'un aurait-il une
idée ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bull
J'ai trouvé le code. Pour ceux que ça intéressent, le voici :
Private Sub TreeView1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragOver 'scroll auto Dim tv As TreeView = CType(sender, TreeView) Dim pt As Point = tv.PointToClient(New Point(e.X, e.Y)) Dim delta As Integer = tv.Height - pt.Y If delta < tv.Height / 2 And delta > 0 Then Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y) If Not (tn.NextVisibleNode Is Nothing) Then tn.NextVisibleNode.EnsureVisible() End If End If
If delta > tv.Height / 2 And delta < tv.Height Then Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y) If Not (tn.PrevVisibleNode Is Nothing) Then tn.PrevVisibleNode.EnsureVisible() End If End If End Sub
Voila, en espérant que cela servira à d'autres :) Bull
"Bull" a écrit dans le message de news: eMhH%
Bonjour,
Actuellement, j'ai mis en place un drag & drop entre deux noeuds de mon treeview.
Le problème est que lorsqu'il est nécessaire de faire défiler l'ascenseur du treeview pour aller de noeud de départ au noeud cible, et bien ça ne le fait pas automatiquement comme dans d'autre application. J'ai cherché et j'ai trouvé l'évènement DragLeave qui est levé lorsque durant un drag, le curseur sort du controle. Maintenant, je ne trouve pas la méthode permettant de dire à l'ascenseur du treeview de descendre ou monter. Quelqu'un aurait-il une idée ?
Merci d'avance, Bull
J'ai trouvé le code. Pour ceux que ça intéressent, le voici :
Private Sub TreeView1_DragOver(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles TreeView1.DragOver
'scroll auto
Dim tv As TreeView = CType(sender, TreeView)
Dim pt As Point = tv.PointToClient(New Point(e.X, e.Y))
Dim delta As Integer = tv.Height - pt.Y
If delta < tv.Height / 2 And delta > 0 Then
Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y)
If Not (tn.NextVisibleNode Is Nothing) Then
tn.NextVisibleNode.EnsureVisible()
End If
End If
If delta > tv.Height / 2 And delta < tv.Height Then
Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y)
If Not (tn.PrevVisibleNode Is Nothing) Then
tn.PrevVisibleNode.EnsureVisible()
End If
End If
End Sub
Voila, en espérant que cela servira à d'autres :)
Bull
"Bull" <bull219@wanadoo.fr> a écrit dans le message de news:
eMhH%23oOEFHA.3368@TK2MSFTNGP10.phx.gbl...
Bonjour,
Actuellement, j'ai mis en place un drag & drop entre deux noeuds de mon
treeview.
Le problème est que lorsqu'il est nécessaire de faire défiler l'ascenseur
du treeview pour aller de noeud de départ au noeud cible, et bien ça ne le
fait pas automatiquement comme dans d'autre application. J'ai cherché et
j'ai trouvé l'évènement DragLeave qui est levé lorsque durant un drag, le
curseur sort du controle. Maintenant, je ne trouve pas la méthode
permettant de dire à l'ascenseur du treeview de descendre ou monter.
Quelqu'un aurait-il une idée ?
J'ai trouvé le code. Pour ceux que ça intéressent, le voici :
Private Sub TreeView1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TreeView1.DragOver 'scroll auto Dim tv As TreeView = CType(sender, TreeView) Dim pt As Point = tv.PointToClient(New Point(e.X, e.Y)) Dim delta As Integer = tv.Height - pt.Y If delta < tv.Height / 2 And delta > 0 Then Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y) If Not (tn.NextVisibleNode Is Nothing) Then tn.NextVisibleNode.EnsureVisible() End If End If
If delta > tv.Height / 2 And delta < tv.Height Then Dim tn As TreeNode = tv.GetNodeAt(pt.X, pt.Y) If Not (tn.PrevVisibleNode Is Nothing) Then tn.PrevVisibleNode.EnsureVisible() End If End If End Sub
Voila, en espérant que cela servira à d'autres :) Bull
"Bull" a écrit dans le message de news: eMhH%
Bonjour,
Actuellement, j'ai mis en place un drag & drop entre deux noeuds de mon treeview.
Le problème est que lorsqu'il est nécessaire de faire défiler l'ascenseur du treeview pour aller de noeud de départ au noeud cible, et bien ça ne le fait pas automatiquement comme dans d'autre application. J'ai cherché et j'ai trouvé l'évènement DragLeave qui est levé lorsque durant un drag, le curseur sort du controle. Maintenant, je ne trouve pas la méthode permettant de dire à l'ascenseur du treeview de descendre ou monter. Quelqu'un aurait-il une idée ?