ฉันกำลังทำงานกับ Add-in สำหรับ ArcMap 10.0 ที่เพิ่มแถบเครื่องมือให้กับ ArcMap OpenModelessDialogCommandปุ่มคำสั่ง ( ) หนึ่งปุ่มบนแถบเครื่องมือนั้นจะเปิดกล่องโต้ตอบ WinForms แบบไม่ต่อเนื่องซึ่งMyToolสามารถเปิดใช้งานเครื่องมือ ( ) เพื่อเลือกคุณลักษณะบนแผนที่
ฉันConfig.esriaddinxมีคำสั่งเหล่านี้และการประกาศแถบเครื่องมือ:
<Commands>
  <!-- this is the command that opens the modeless WinForms form, from where
       MyTool is available: -->
  <Button id="OpenModelessFormCommand" ... />
  <!-- MyTool is not directly referenced in any toolbar defined in this file: -->
  <Tool id="MyTool" class="MyTool" ... />
</Commands>
<Toolbars>
  <Toolbar ...>
    <Items>
      <Button refID="OpenModelessFormCommand" />
    </Items>
  </Toolbar>
</Toolbars>สิ่งที่ฉันมีปัญหากับการเปิดใช้งานMyToolในแบบฟอร์ม สิ่งที่ฉันพบบนอินเทอร์เน็ตคือตัวอย่างโค้ดตามบรรทัดต่อไปนี้:
// get a reference to an instance of MyTool:
ICommandItem myTool = ArcMap.Application.Document.CommandBars.Find("MyTool");
 // activate MyTool: 
ArcMap.Application.CurrentTool = myTool;อย่างไรก็ตามต้องมีสิ่งMyToolนี้ปรากฏอยู่ในแถบคำสั่ง (เช่นแถบเครื่องมือ) ของ Add-in ของฉัน แต่นั่นไม่ใช่กรณี ดังนั้นฉันได้ลองสิ่งต่อไปนี้แล้ว:
ITool myTool = new MyTool();
ArcMap.Application.CurrentTool = myTool;  // Type mismatch! An ICommandItem is expected.ฉันได้มองหาการเพิ่มสิ่งที่มองไม่เห็นAxToolbarControlในแบบฟอร์มของฉันและเพิ่มปุ่มสำหรับสิ่งMyToolนั้น แต่แล้วฉันพบปัญหาเกี่ยวกับวิธีการเชื่อมต่อแถบเครื่องมือนั้น (ผ่านSetBuddyControl) เข้ากับแผนที่ของเอกสารที่เปิดอยู่ ฉันไม่ต้องการให้เครื่องมือทำงานแยกกันAxMapControlฉันต้องการให้มันทำงานโดยตรงกับแผนที่หลักที่แสดงใน ArcMap
คำถาม:
 
ฉันจะเปิดใช้งานเครื่องมือแบบกำหนดเองที่ไม่ได้เพิ่มลงในแถบเครื่องมือใด ๆ (หรือแถบคำสั่งอื่นสำหรับเรื่องนั้นได้อย่างไร)
bugยังไม่มีอยู่จริง โปรดแก้ไขแท็กด้วยตนเอง