private int _GetYIndex(TreeNode currentNode, int currentY)
{
if (currentNode.parent == null) return currentY;
if (currentNode == TreeView.root) return currentY--;
if (currentNode.parent != TreeView.root && currentNode.parent.IsVisible) currentY++;
for (int i = 0; i < currentNode.index; i++)
currentY += _GetVisibleNodesAmount(currentNode.parent.Nodes[i], 0);
return _GetYIndex(currentNode.parent, currentY);
}