2010-06-08 16 views
8

में कोई फ़ॉर्म या विंडो खोल सकते हैं, मैं VSTO प्रोग्रामिंग में नया हूं। मैंने Outlook 2007 के लिए एक मूल एडिन बनाया है जो एक्सएमएल टेक्स्ट फाइलों वाले फ़ोल्डर को मॉनीटर करता है जो इसे खुलता है और फिर उन्हें ईमेल के रूप में भेजता है, फिर उन्हें हटा देता है। यह सब ठीक काम करता है।क्या आप Outlook Addin (VSTO)

मैं चाहता हूं कि उपयोगकर्ता एडिन/प्रोग्राम संचालित करने के तरीके के लिए कुछ सेटिंग्स कॉन्फ़िगर करने में सक्षम हो, जैसे फ़ोल्डर की निगरानी करेगा, और अन्य चीजें। ऐसा करने का तार्किक तरीका एडिन में एक मेनू आइटम बनाना है (जिसे मैंने भी किया है) जो एक विंडोज़ फॉर्म (या एक्सएएमएल विंडो) खोलता है जो उन्हें पैरामीटर दर्ज करने की अनुमति देता है।

मेरे एडिन में मैंने एक नया आइटम विंडोज फॉर्म जोड़ा, जो काम करता था, और डिजाइनर खोला गया। हालांकि, मेरे एडिन कोड में मैं फॉर्म नहीं खोल सकता। आमतौर पर फॉर्म ऑब्जेक्ट्स से जुड़े शो() विधि उपलब्ध नहीं है।

क्या यह ऐसा कुछ है जो आप नहीं कर सकते हैं, या क्या मैं इसे गलत तरीके से कर रहा हूं?

मैंने Outlook फॉर्म क्षेत्रों के बारे में पढ़ा है, लेकिन इन्हें नए ईमेल, कार्य, अपॉइंटमेंट इत्यादि जैसे दृष्टिकोण आइटम से जोड़ा जाना प्रतीत होता है ... ऐसा प्रपत्र क्षेत्र बनाने का एक तरीका प्रतीत नहीं होता है जिसे खोला जा सकता है आउटलुक की मुख्य विंडो में।

आदर्श रूप में, मैं मेनू आइटम से एक नई विंडो खोलने की अपनी मूल विधि के साथ जाना चाहता हूं, लेकिन यदि यह संभव नहीं है तो मैं अन्य समाधान सुनना चाहता हूं।

धन्यवाद, विल।

+0

आप विंडोज़ को ठीक से खोल सकते हैं। आपका क्या मतलब है कि यह "उपलब्ध नहीं है"? क्या इसे खोलने की कोशिश करते समय आपको कोई त्रुटि मिलती है या क्या? अगर आपको कोई त्रुटि मिलती है (रनटाइम या संकलन-समय) तो कृपया त्रुटि संदेश पोस्ट करें। –

उत्तर

7

एक सामान्य रूप के लिए, ऐसा लगता है जैसे आपने सिस्टम को नहीं जोड़ा है। Windows.Forms संदर्भ के रूप में, ऑब्जेक्ट बनाएं, फिर इसे दिखाएं।

Form myFrm = new frmFlightList(); 
myFrm.Show(); 

यह किसी VSTO एडिन में काम करना चाहिए, क्योंकि यह किसी अन्य रूप में करता है। आपके द्वारा संदर्भित CMSConnectorControl ऑब्जेक्ट सामान्य रूप से किसी फ़ॉर्म को प्रदर्शित करने के सामान्य मामले के लिए दूसरों के लिए एक व्याकुलता है।

+0

यह कोड इस कारण बनता है: यह सक्रिय नियंत्रण नियंत्रण तत्काल नहीं हो सकता है क्योंकि वर्तमान थ्रेड एक थ्रेडेड अपार्टमेंट नहीं है। – mustafatorun

0

इस पता लगा, के बाद मैं अपने प्रपत्र बनाया मैं तो बस इन पंक्तियों

CMSConnectorControl formMain = new CMSConnectorControl(); 
formMain.ShowDialog(); 
ThisAddin_Startup() फ़ंक्शन को

जोड़ने के लिए किया था।

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