Look at, I think it's called MapFunctionIdentify or something in DotSpatial.Controls. It is the feature identifier for when you click on the map, but it doesn't care about your selection, it just returns results for everything. You can subclass
the MapFunction class, override the mouse events to your liking. To add it, use the constructor with the Map if you want to use the "Map" variable internally like: CustomMapFunction myInstance = new CustomMapFunction(map1); In your constructor
you call the base MapFunction constructor with the Map parameter like:
Public CustomFunction(IMap map):base(map)
To make your function work you need to add the instance to the maps MapFunctions
You can enable it directly, but I'd recommend using the activate method. I'm winging this off the top of my head so it might not be exact, but it's something like
This method should also turn off anything that conflicts. Declare conflicts by setting the "YieldTypes" enumeration. This has the flags setting so that you can support multiple forms of user interface.
Basically you can look at the existing code in MapFunctionIdentify and replicate almost everything there.