17. april 2005 - 00:17
Der er
10 kommentarer
Højreklik på TreeNode i TreeView
Hej der Jeg har et TreeView med en række TreeNodes. Jeg har knyttet en ContextMenu til mit TreeView, som kommer frem ved højreklik. Hvordan får jeg den TreeNode, der højreklikket på, til at være TreeView.SelectedNode ?
Annonceindlæg fra Computerworld it-jobbank
Mød 3.500+ it-talenter på IT-DAY 2026
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
17. april 2005 - 09:32
#2
Ja det er også den løsning jeg har kunnet snuse mig frem til. Problemet er, at GetNodeAt metoden ikke genkendes af VS .NET. Hvorfor det?
17. april 2005 - 18:58
#4
using System; using System.Windows.Forms; namespace WebExtractor { /// <summary> /// Summary description for CETreeView. /// </summary> public class TreeViewEx : System.Windows.Forms.TreeView { public TreeViewEx() { // // TODO: Add constructor logic here // } public TreeNode GetNodeFromIndex(int index) { TreeNode node = this.Nodes[0]; for(int i = 0; i < index; i++) { if(node == null) { return node; } node = node.NextVisibleNode; } return node; } public TreeNode GetNextNode(TreeNode curr_node) { TreeNode next_node = null; if(curr_node.FirstNode != null ) { next_node = curr_node.FirstNode; } else if( curr_node.NextNode != null ) { next_node = curr_node.NextNode; } else if( curr_node.Parent != null ) { while(curr_node.Parent.NextNode != null & curr_node.Parent != null) { curr_node = curr_node.Parent; } if(curr_node.Parent.NextNode != null) next_node = curr_node.Parent.NextNode; else next_node = null; } else { return null; } return next_node; } public int GetIndexFromNode(TreeNode treeNode) { int nodecount = 0; if (treeNode !=null) { if(treeNode.TreeView == null) return -1; TreeNode currNode = treeNode.TreeView.Nodes[0]; while(currNode != treeNode) { if (currNode.FirstNode != null) // child node currNode = currNode.FirstNode; else if (currNode.NextNode != null) // next sibling currNode = currNode.NextNode; else // next sibling of parent { while(currNode.Parent.NextNode == null) { currNode = currNode.Parent; } currNode = currNode.Parent.NextNode; } nodecount++; } return nodecount; } else { return -1; } } } } har en lille klasse der gør det samme.
17. april 2005 - 21:10
#7
Det kan man ik med den kode man kan kun få et index fra en node eller en node fra et index. Havde ik læst hele tråden ordenligt:D Treeview har som du siger en GetIndexAt(..). Fessor har givet dig den rigtige løsning hvis du ikke har den funktion så er der noget grueligt galt.