I need to validate the tool before completing my task. if I click move tool I have a different workflow, if I edit vertices I have another workflow. How to know the clicked tool.
I am not sure this is what you are looking for, but it may be helpful to use some kind of Event.
You could subscribe to the ActiveToolChangedEvent.
For example you could subscribe to the event in a dockpane's constructor.
And then create you own function OnActiveToolChanged to determine which tool was clicked.
Below the initialize method’s code, add the following new method. The code does an unsubscribe, so that the MessageBox stops appearing. Instead of a message box, make your decision on what to do, depending on the tool clicked.
private void OnActiveToolChanged(ArcGIS.Desktop.Framework.Events.ToolEventArgs args)
string prevTool = args.PreviousID;
string newTool = args.CurrentID;
If you need to do something before the tool is used, then use ActiveToolChangedEvent mentioned, but if what you are doing occurs when the tool actually does something, then just get the active tool - there's only one.
Tool currentTool = FrameworkApplication.ActiveTool; MessageBox.Show(currentTool.Caption);