protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
mouseDownAtNode = GetNodeAt(e.Location);
if (mouseDownAtNode == null)
{
return;
}
// Try to toggle node with mouse.
if (mouseDownAtNode.Nodes.Count > 0 &&
e.X >= mouseDownAtNode.Bounds.X &&
e.X <= mouseDownAtNode.Bounds.X + arrowSize)
{
mouseDownAtNode.Toggle();
mouseDownAtNode = null; // Prevent node from being selected.
return;
}
drag = true;
dragNode = mouseDownAtNode;
dragPosition = e.Location;
}