/// <summary>
 /// Recarga el historial de archivos encolados para transferencias y/o descargas
 /// </summary>
 private void refreshList(FileItem fileItem)
 {
     bool exist = false;
     foreach (TreeNode node in treeView.Nodes)
     {
         String filehandlerID = (String)node.Tag;
         if (filehandlerID.Equals(fileItem.FileHandlerId))
         {
             node.Text = fileItem.ToString();
             exist = true;
             break;
         }
     }
     if (!exist)
     {
         TreeNode fileNode = new TreeNode(fileItem.ToString());
         fileNode.ImageIndex = 0;
         fileNode.SelectedImageIndex = 0;
         fileNode.Tag = fileItem.FileHandlerId;
         treeView.Nodes.Add(fileNode);
     }
 }
 /// <summary>
 /// Encola a un archivo para transferencia (upload)
 /// </summary>
 /// <param name="netUser">El usuario de la red al cual se le debe transferir el archivo</param>
 /// <param name="fileHandlerId">El id de la transferencia</param>
 /// <param name="fileName">El nombre del archivo</param>
 public void uploadFileQueued(NetUser netUser, String fileHandlerId, String fileName)
 {
     if (treeView.InvokeRequired)
     {
         NetUserCallback d = new NetUserCallback(uploadFileQueued);
         this.Invoke(d, new object[] { netUser, fileHandlerId, fileName });
     }
     else
     {
         FileItem fileItem = new FileItem();
         fileItem.NetUserName = netUser.Name;
         fileItem.FileName = fileName;
         fileItem.Percent = 0;
         fileItem.State = FileControlState.QUEUED;
         fileItem.Type = FileControlStateType.UPLOAD;
         fileItem.FileHandlerId = fileHandlerId;
         fileList.Add(fileItem);
         refreshList(fileItem);
     }
 }