private void PaintNode(TreeNode node)
        {
            if (!originalColor.Contains(node))
            {
                originalColor[node] = node.ForeColor;
                node.BackColor      = SystemColors.Highlight;
                node.ForeColor      = SystemColors.HighlightText;

                MultiSelectTreeNode mNode = node as MultiSelectTreeNode;
                if (mNode != null)
                {
                    mNode.Painted = true;
                }
            }
        }
        private void UnpaintNode(TreeNode node)
        {
            if (originalColor.Contains(node))
            {
                MultiSelectTreeNode mNode = node as MultiSelectTreeNode;

                node.BackColor = base.BackColor;
                if (mNode != null)
                {
                    mNode.ForeColor = mNode.ForeColorRequest;
                    mNode.Painted   = false;
                }
                else
                {
                    node.ForeColor = (Color)originalColor[node];
                }
                originalColor.Remove(node);
            }
        }