2009-05-01 11 views
5

मैं एक साधारण वीएस ऐड-इन लिख रहा हूं और कोड के भीतर "दस्तावेज़ प्रारूप" विकल्प (संपादन के तहत) प्रोग्रामेटिक रूप से आमंत्रित करना चाहता हूं। Google आज मेरे लिए बहुत अनुकूल नहीं है ....सी # से प्रोग्रामेटिक रूप से "दस्तावेज़ प्रारूप" को कैसे कॉल करते हैं?

+0

क्या आपने Resharper की कोशिश की है? यह आपके लिए एक ही समय में पूरे समाधान को दोबारा सुधार सकता है। (मुझे लगता है कि यह मदद नहीं करता है लेकिन मैंने कोशिश की होगी ... ;-)) – Rashack

+0

नहीं, बस ब्रेसिज़ को स्वचालित रूप से बंद करने के लिए अपना खुद का छोटा टूल रोल करने की कोशिश कर रहा है (हाँ, मुझे पता है कि रिशेर्पर भी ऐसा करता है, लेकिन उसमें मजा कहां है ??) – BFree

उत्तर

5
Command cmd = _applicationObject.Commands.Item("Edit.FormatDocument", -1); 
object dummy = null; 
_applicationObject.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy); 
+0

चूंकि यह जांचने वाला पहला समय है, मैं समझ नहीं पाया। क्या आप कृपया '_applicationObject' और उसके नामस्थान का प्रकार निर्दिष्ट कर सकते हैं। मैंने थोड़ा सा ब्राउज़ किया है कि मुझे EnvDTE80 नामस्थान का उपयोग करना चाहिए लेकिन मैं आगे नहीं बढ़ सका। कोई भी कोडपिपेट बहुत उपयोगी होगा। –

0

आपको मानक कमांड संपादकों का उपयोग करने की आवश्यकता होगी, जिन्हें VSStd2KCmdId.FORMATDOCUMENT कमांड गणना कहा जाता है।

5

आप (प्रकार खिड़की के) अपने दस्तावेज़ के लिए एक संदर्भ है, और आप _DTE वस्तु के लिए एक संदर्भ है, तो आप इसे इस तरह कॉल कर सकते हैं:

myDocument.Activate(); 
myDTE.ExecuteCommand("Edit.FormatDocument", string.Empty); 

अधिकांश समय, आप अपने ऐड-इन में पारित पैरामीटर से _DTE ऑब्जेक्ट का संदर्भ प्राप्त कर सकते हैं।

+0

क्या इसे खोलने के बिना दस्तावेज़ स्वरूपित करने का कोई तरीका है? मैं एक क्लिक के साथ परियोजना में सभी दस्तावेजों को प्रारूपित करना चाहता हूं। – Hooch

+0

मुझे विश्वास नहीं है। आप दस्तावेज़ खोल सकते हैं, प्रारूपित कर सकते हैं और फिर बंद कर सकते हैं। –

संबंधित मुद्दे