मैं 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
वास्तव में मेरे ऐड-इन के कमांड बार (जैसे टूलबार) में दिखाई देता है। लेकिन ऐसी बात नहीं है। इसलिए, मैंने इसके लिए अगला प्रयास किया है:
ITool myTool = new MyTool();
ArcMap.Application.CurrentTool = myTool; // Type mismatch! An ICommandItem is expected.
मैंने AxToolbarControl
अपने फॉर्म में एक अदृश्य जोड़ने और MyTool
वहां के लिए एक बटन जोड़ने पर भी ध्यान दिया है ; लेकिन फिर मैं उस टूलबार (कैसे SetBuddyControl
) को खोला दस्तावेज़ के नक्शे से कनेक्ट करने की समस्याओं पर चल रहा हूं । मैं टूल को अलग AxMapControl
से काम नहीं करना चाहता , मैं चाहता हूं कि यह सीधे आर्कपॅप में दिखाए गए मुख्य नक्शे के साथ काम करे।
प्रश्न:
मैं एक कस्टम टूल को कैसे सक्रिय करूं जो किसी भी टूलबार (या अन्य कमांड बार, उस मामले के लिए) में नहीं जोड़ा गया है?
bug
अभी तक मौजूद नहीं है; कृपया अपने आप को टैग संपादित करने के लिए स्वतंत्र महसूस करें।