private void lstGroupe_DragDrop(object sender, DragEventArgs e) { // Get the tree. TreeView tree = (TreeView)sender; // Get the screen point. System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y); // Convert to a point in the TreeView's coordinate system. pt = tree.PointToClient(pt); // Get the node underneath the mouse. TreeNode NodDest = tree.GetNodeAt(pt); // Add a child node. //node.Nodes.Add((TreeNode)e.Data.GetData(typeof(TreeNode))); // Show the newly added node if it is not already visible. //node.Expand(); TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode)); if (NodDest.Name == nodSrc.Name) { return; } //Prise en compte du changement en base //Recherche d'un lien du NodSrc Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID); if (!(k is null)) //Suppression des liens existants pour le Prop 0 (SYSTEME) { k.Acces = Acces; k.Supprimer(); } //Création du lien Lien p = new Lien() { Acces = Acces }; p.element1_type = Acces.type_GROUPE.id; p.element1_id = int.Parse(NodDest.Name); p.element1_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, p.element1_id)).Code; p.element2_type = Acces.type_GROUPE.id; p.element2_id = int.Parse(nodSrc.Name); p.element2_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, p.element2_id)).Code; p.element0_type = Acces.type_PLAN.id; //SYSTEME p.element0_id = 1; //SYSTEME p.element0_code = "SYSTEME"; //SYSTEME p.ordre = p.Donner_Ordre() + 1; if (p.element1_id == p.element2_id) { return; } //Système anti-bouclage p.Ajouter(); Acces.Ajouter_Lien(p); AfficheListeGroupe(); TreeNode[] Nods = lstGroupe.Nodes.Find(nodSrc.Name.ToString(), true); lstGroupe.SelectedNode = Nods[0]; Nods[0].EnsureVisible(); }