<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Setting focus to Tool / Command in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211415#M5496</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Don't be afraid to implement new things, tool is not that complicated at all. Use ArcGisWizard in VS for creating ArcMap Tool. Use OnClick for opening the form. Test how and when this event is triggered. &lt;BR /&gt;For this UseCase you can when form receives a focus checks, Form_Activated event,&amp;nbsp; if Application.CurrentTool is your tool.&amp;nbsp; If is not, then Find tool by GUID and set it as your current tool. &lt;BR /&gt;&lt;BR /&gt;here are some hints&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
some general utility class
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static ICommandItem FindTool(string toolGUID)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICommandItem item = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID pUID = new UIDClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUID.Value = toolGUID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item = Extension.Application.Document.CommandBars.Find(pUID, false, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch { }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return item;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;tool GUID is string {...} or you can do it by ProgID which is namspace.className&lt;BR /&gt;&lt;BR /&gt;form class&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
//member
private ICommandItem m_currentTool = null;

//method
// use form activated method for checking and setting current tool
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ToolForm_Activated(object sender, EventArgs e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Extension.Application.CurrentTool == null ||
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool.Caption != currentTool.Caption)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.UIState = Extension.UIStates.SomeState;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool = currentTool;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the answer, not sure I understand exactly how the code works though, I'll probably try to set all the items to inherit from ArcTool to see if it works.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 10:24:37 GMT</pubDate>
    <dc:creator>SimonField</dc:creator>
    <dc:date>2021-12-11T10:24:37Z</dc:date>
    <item>
      <title>Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211409#M5490</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the following function which works ok when setting the focus to a tool:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Public Sub CorrectFocus(ByVal p_application As IApplication, ByVal toolname As String)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pCommand As ESRI.ArcGIS.SystemUI.ICommand&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim m_application As IApplication&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim curr_tool As String&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; curr_tool = toolname&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_application = p_application&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pCommand = p_application.Document.CommandBars.Find(curr_tool, False, False)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If pCommand Is Nothing Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox("Could not find tool")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_application.CurrentTool = pCommand&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This works fine when the tool in question (curr_tool) inherits from BaseTool, however I have situations where the 'tool' I need to focus on inherits from BaseCommand and when I carry out the above function in this case, I get an ArgumentException 'Value does not fall in expected range'.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there any way I could modify or rewrite the above function so it would re-focus on a tool inheriting from BaseCommand?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help appreciated!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Simon&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Sep 2011 10:09:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211409#M5490</guid>
      <dc:creator>SimonField</dc:creator>
      <dc:date>2011-09-28T10:09:25Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211410#M5491</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;By ICommandItem.Execute you'll have focus on BaseCommand item. It is a bit unusual way to have focus on ICommand object that is meant to be executed without any user interaction. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe it is a better way for you to create your own custom tool that implements functions of some BaseCommand item, that way you can make focus on it. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What is Use Case that you are trying to implement?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Sep 2011 10:27:19 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211410#M5491</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-09-28T10:27:19Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211411#M5492</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;By ICommandItem.Execute you'll have focus on BaseCommand item. It is a bit unusual way to have focus on ICommand object that is meant to be executed without any user interaction. &lt;BR /&gt;Maybe it is a better way for you to create your own custom tool that implements functions of some BaseCommand item, that way you can make focus on it. &lt;BR /&gt;&lt;BR /&gt;What is Use Case that you are trying to implement?&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help, I've tried using ICommandItem.Execute but it still leaves focus on the tool I had previously selected. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the problem I have: The user clicks on the 'tool' (call it 'Tool A' for this example) and this opens a window with various items on. They then click on another tool, for example the pan/zoom tool in ArcMap, then click back on the 'Tool A' window, however when they hover the mouse over a map, the Pan/Zoom tool is still active.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I guess I may have to do what you suggest and create a new custom tool (although this would be a first as I'm new to this!)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Sep 2011 14:22:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211411#M5492</guid>
      <dc:creator>SimonField</dc:creator>
      <dc:date>2011-09-28T14:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211412#M5493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A command cannot have focus unless it is also a tool.&amp;nbsp; Commands are one click kind of deals, they don't have any focus.&amp;nbsp; When you click on your command and the form pops up, the current tool is still the previous one.&amp;nbsp; Now what you do when the form is open is up to you.&amp;nbsp; If the users are not to have any interaction with arcmap, make the form modal, this will prevent focus from shifting from the form back to the map.&amp;nbsp; If that is not your goal, you can also set the current tool to the select &lt;/SPAN&gt;&lt;STRONG&gt;elements&lt;/STRONG&gt;&lt;SPAN&gt; tool, it is a de facto default tool.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Sep 2011 14:40:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211412#M5493</guid>
      <dc:creator>AlexanderGray</dc:creator>
      <dc:date>2011-09-28T14:40:02Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211413#M5494</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Don't be afraid to implement new things, tool is not that complicated at all. Use ArcGisWizard in VS for creating ArcMap Tool. Use OnClick for opening the form. Test how and when this event is triggered. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For this UseCase you can when form receives a focus checks, Form_Activated event,&amp;nbsp; if Application.CurrentTool is your tool.&amp;nbsp; If is not, then Find tool by GUID and set it as your current tool. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;here are some hints&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
some general utility class
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static ICommandItem FindTool(string toolGUID)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICommandItem item = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID pUID = new UIDClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUID.Value = toolGUID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item = Extension.Application.Document.CommandBars.Find(pUID, false, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch { }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return item;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;tool GUID is string {...} or you can do it by ProgID which is namspace.className&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;form class&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
//member
private ICommandItem m_currentTool = null;

//method
// use form activated method for checking and setting current tool
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ToolForm_Activated(object sender, EventArgs e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Extension.Application.CurrentTool == null ||
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool.Caption != currentTool.Caption)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.UIState = Extension.UIStates.SomeState;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool = currentTool;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:24:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211413#M5494</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2021-12-11T10:24:35Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211414#M5495</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;A command cannot have focus unless it is also a tool.&amp;nbsp; Commands are one click kind of deals, they don't have any focus.&amp;nbsp; When you click on your command and the form pops up, the current tool is still the previous one.&amp;nbsp; Now what you do when the form is open is up to you.&amp;nbsp; If the users are not to have any interaction with arcmap, make the form modal, this will prevent focus from shifting from the form back to the map.&amp;nbsp; If that is not your goal, you can also set the current tool to the select &lt;STRONG&gt;elements&lt;/STRONG&gt; tool, it is a de facto default tool.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the answer. I've just started support work on the system we're using and from what I gather, the items that inherit from ArcCommand do so because these don't need to interact with the map, whereas the ones that inherit from ArcTool do. However by changing them all to inherit from ArcTool seems to work ok so I'll try that and see if it works.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 09:16:51 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211414#M5495</guid>
      <dc:creator>SimonField</dc:creator>
      <dc:date>2011-10-03T09:16:51Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211415#M5496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Don't be afraid to implement new things, tool is not that complicated at all. Use ArcGisWizard in VS for creating ArcMap Tool. Use OnClick for opening the form. Test how and when this event is triggered. &lt;BR /&gt;For this UseCase you can when form receives a focus checks, Form_Activated event,&amp;nbsp; if Application.CurrentTool is your tool.&amp;nbsp; If is not, then Find tool by GUID and set it as your current tool. &lt;BR /&gt;&lt;BR /&gt;here are some hints&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
some general utility class
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static ICommandItem FindTool(string toolGUID)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICommandItem item = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UID pUID = new UIDClass();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pUID.Value = toolGUID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item = Extension.Application.Document.CommandBars.Find(pUID, false, false);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch { }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return item;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;tool GUID is string {...} or you can do it by ProgID which is namspace.className&lt;BR /&gt;&lt;BR /&gt;form class&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
//member
private ICommandItem m_currentTool = null;

//method
// use form activated method for checking and setting current tool
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void ToolForm_Activated(object sender, EventArgs e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Extension.Application.CurrentTool == null ||
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool.Caption != currentTool.Caption)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.UIState = Extension.UIStates.SomeState;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extension.Application.CurrentTool = currentTool;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for the answer, not sure I understand exactly how the code works though, I'll probably try to set all the items to inherit from ArcTool to see if it works.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:24:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211415#M5496</guid>
      <dc:creator>SimonField</dc:creator>
      <dc:date>2021-12-11T10:24:37Z</dc:date>
    </item>
    <item>
      <title>Re: Setting focus to Tool / Command</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211416#M5497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you get lost while solving problem contact me on my mail&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="mailto:&amp;quot;dubravko.antonic@gisdata.com&amp;quot;" rel="nofollow"&gt;dubravko.antonic@gisdata.com&lt;/A&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Maybe I'll manage to help you.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm in GMT+1 zone.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 10:36:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/setting-focus-to-tool-command/m-p/211416#M5497</guid>
      <dc:creator>DubravkoAntonic</dc:creator>
      <dc:date>2011-10-03T10:36:14Z</dc:date>
    </item>
  </channel>
</rss>

