public void ProcessClick( Graphics g, TreeNode treeNode, Rectangle nodeRectangle, Point p, ITreeInfo treeInfo, ITreeEvents treeEvents ) { Size ecSize = GetGlyphSize( g, treeNode.IsExpanded ); Rectangle ecBounds = new Rectangle( nodeRectangle.X + _leftSep, nodeRectangle.Y + (nodeRectangle.Height - ecSize.Height) / 2, ecSize.Width, ecSize.Height ); if( ecBounds.Contains( p ) && treeNode.ChildNodes.Count > 0 ) { if( !treeInfo.IsAnimating() ) { treeEvents.ToggleNodeExpansion( treeNode ); } } else { treeEvents.SelectNode( treeNode ); } }