मैं 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अभी तक मौजूद नहीं है; कृपया अपने आप को टैग संपादित करने के लिए स्वतंत्र महसूस करें।