private void tvAccidentes_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { Stack <string> nodos = new Stack <string>(); TreeNode nodo = e.Node; nodos.Push(nodo.Name); if (nodo.Parent != null) { nodo = nodo.Parent; nodos.Push(nodo.Name); } string peek; bool find = false, find2 = false; HashSet <Masslabelling.Region> reg = map.Regiones; Masslabelling.Region sal = new Masslabelling.Region(); while (nodos.Count > 0) { peek = nodos.Pop(); for (int i = 0; i < reg.Count && !find; i++) { sal = reg.ElementAt(i); if (sal.Nombre == peek) { find = true; if (sal.Hijos != null && sal.Hijos.Count > 0) { reg = sal.Hijos; } } } } poligono = sal; pbMapa.Refresh(); }
private TreeNode fillTree(Masslabelling.Region R) { TreeNode tn = new TreeNode(); tn.Name = R.Nombre; tn.Text = R.Nombre; if ((R.Hijos != null) && (R.Hijos.Count > 0)) { foreach (Masslabelling.Region h in R.Hijos) { tn.Nodes.Add(fillTree(h)); } } return(tn); }