public TreeNodeKey(int intIDType, int?intID, object objTag)
 {
     IDType         = intIDType;
     ID             = intID;
     KeysCollection = new TreeNodeKeyCollection();
     Tag            = objTag;
 }
 /// <summary>
 ///		Obtiene una colección con los nodos seleccionados
 /// </summary>
 private void GetCheckedNodesRecursive(TreeNode trnNode, TreeNodeKeyCollection objColNodesKeys)
 {         // Si el nodo está seleccionado, lo añade a la colección
     if (IsNodeWithKey(trnNode) && trnNode.Checked)
     {
         objColNodesKeys.Add(trnNode.Tag as TreeNodeKey);
     }
     // Recorre los nodos hijos
     foreach (TreeNode trnChild in trnNode.Nodes)
     {
         GetCheckedNodesRecursive(trnChild, objColNodesKeys);
     }
 }
        /// <summary>
        ///		Obtiene una colección con los nodos seleccionados
        /// </summary>
        public TreeNodeKeyCollection GetKeysCheckedNodes()
        {
            TreeNodeKeyCollection objColNodesKeys = new TreeNodeKeyCollection();

            // Recorre el árbol buscando los nodos seleccionados
            foreach (TreeNode trnNode in Nodes)
            {
                GetCheckedNodesRecursive(trnNode, objColNodesKeys);
            }
            // Devuelve la colección de nodos
            return(objColNodesKeys);
        }