private void treCharacterList_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode objSelectedNode = treCharacterList.SelectedNode;

            if (objSelectedNode == null)
            {
                return;
            }
            CharacterCache objCache = objSelectedNode.Tag as CharacterCache;

            objCache?.OnMyAfterSelect(sender, e);
            UpdateCharacter(objCache);
            treCharacterList.ClearNodeBackground(treCharacterList.SelectedNode);
        }
 private void treCharacterList_AfterSelect(object sender, TreeViewEventArgs e)
 {
     CharacterCache objCache = null;
     TreeNode objSelectedNode = treCharacterList.SelectedNode;
     if((objSelectedNode != null && objSelectedNode.Level > 0)
         && (objSelectedNode?.Tag != null))
     {
         _lstCharacterCache.TryGetValue(objSelectedNode.Tag.ToString(), out objCache);
     }
     else if (objSelectedNode?.Tag is CharacterCache)
     {
         objCache = objSelectedNode.Tag as CharacterCache;
     }
     if(objCache != null)
         objCache.OnMyAfterSelect(sender, e);
     UpdateCharacter(objCache);
     treCharacterList.ClearNodeBackground(treCharacterList.SelectedNode);
 }