[quote user="Bruce Reeves SRNS"]Is there some way to "force" the selection/location process to NOT pick the element the cursor is over IF the mouse is down and held and use the "drag" line elements instead?[/quote]
The first thing to understand is how drag selection works. On the data button down event, interest is registered for drag events using mdlState_setFunction with STATE_DRAG_INIT. Now if the cursor moves a sufficient distance before getting an up event for the data button, the drag is initiated.
Because our tools process the data button on the down event in order to locate elements/advance the tool state (and don't get both down and up events for data, only down), it's not possible to support initiating drag selection while over an element without the element also being located. You would have to be able to do the locate on the up event, which wouldn't be sent when/if a drag started. But as already mentioned, tools don't get sent an up event for data button currently...and it might also feel "odd" to the user doing things on up instead of down.
Anyway, this is the reason why MstnElementSetTool only registers for drag events when an element isn't located. NOTE: The user can set the locate interior preference to "never" tomake it easier to use drag selection in a rendered view, or when their are filled shapes, etc.
Now, while it would be possible to make the tool only work using drag (i.e. you never call locate in your data point function)...that would be fairly non-standard tool behavior and not very discoverable either (user might click on things and be confused why nothing is happening). There's also a user preference that disables drag selection, which would make your tool non-functional.
One approach to this problem is to add buttons for various selection modes to the tool settings like the Element Selection tool and some mesh tools do. Then you'll now to accumulate points for the selection line/box/shape, etc. in your data button method instead of calling locate.
HTH
-B