Duracelle123
Messages postés59Date d'inscriptionlundi 11 janvier 2010StatutMembreDernière intervention 4 août 2015
-
Modifié par Duracelle123 le 8/07/2014 à 02:52
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024
-
9 juil. 2014 à 00:01
Bonjour, Je programme en Visual studio 2010. Je tente lors du Drag and Drop vers un treeview de highlight le noeud ou est la sourie est. Voici le code ou je reçois un message d'erreur.
Private Sub TVW_REPAS_DragOver(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles TVW_REPAS.DragOver ' Retrieve the client coordinates of the mouse position. Dim targetPoint As Point = TVW_REPAS.PointToClient(New Point(e.X, e.Y))
' Select the node at the mouse position. TVW_REPAS.SelectedNode = TVW_REPAS.GetNodeAt(targetPoint)
TVW_REPAS.SelectedNode.BackColor = Color.Blue TVW_REPAS.SelectedNode.ForeColor = Color.White End Sub
L'erreur ce produit sur ces deux lignes:
TVW_REPAS.SelectedNode.BackColor = Color.Blue
TVW_REPAS.SelectedNode.ForeColor = Color.White
le message est: La référence d'objet n'est pas définie à une instance d'un objet.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 8 juil. 2014 à 08:12
Bonjour le message d'erreur est clair, une des variable vaut null.
Color doit être défini, tvw_repas à déjà servi plus haut, alors il ne te reste plus que selectednode.
Bonjour, Merci de ta réponse mais je suis nouveau en vb.net. Pourrais-tu me donner un bout de code qui pourrais m'aidé s.v.p. Je ne comprend pas pourquoi il faut définir color alors qui fait partie des propriétés du treeview.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 8 juil. 2014 à 23:05
Je me suis mal exprimé.
Je ne voulais pas dire que tu dois définir Color, mais qu'il y est puisque c'est un type system.
Je pense que c'est la sélection de nœud qui ne marche pas.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 8 juil. 2014 à 23:45
J'ai fait un test, avec les coordonnées 1,1 ça marche, mais pas avec les coordonnées 1,100.
TreeView1.Nodes.Add("test noeud1")
TreeView1.Nodes.Add("test noeud2")
TreeView1.Nodes(0).Nodes.Add("test noeud1-2")
'Dim monTreeNode As TreeNode = TreeView1.GetNodeAt(1, 1) 'ceci me selectionne "test noeud1"
Dim monTreeNode As TreeNode = TreeView1.GetNodeAt(1, 100) 'ceci me retourne Nothing et forcément ça bug plus loin
monTreeNode.BackColor = Color.Blue
monTreeNode.ForeColor = Color.White
Il faut que tu testes si GetNodeAt ne vaut pas Nothing avant d'aller plus loin.
Whismeril
Messages postés18991Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mars 2024654 9 juil. 2014 à 00:01
un truc comme ça
Dim monpoint As Point = TreeView1.PointToClient(New Point(e.X, e.Y))
Dim monTreeNode As TreeNode = TreeView1.GetNodeAt(monpoint)
If Not (monTreeNode Is Nothing) Then
monTreeNode.BackColor = Color.Blue
monTreeNode.ForeColor = Color.White
End If