2011-04-13 21 views
9

पर रिबनड्रॉपडाउन में आइटम जोड़ना तो मेरे पास एक रिबन में एक ड्रॉपडाउन मेनू है जिसमें सामग्री का उपयोग किया जा रहा है। जब तक मैं 1 से अधिक आइटम नहीं जोड़ता, तब तक Outlook मुझे 'जोड़ने' या 'सम्मिलित' आइटम देने में भी प्रसन्न होता है।रनटाइम

यदि मैं कोशिश करता हूं, तो मुझे बताया जाएगा कि सूचकांक मेरे लिए ऊपरी सीमाओं को विस्तारित करने के बजाय सीमा से बाहर है।

मुझे लगता है कि अगर मैं इसे कोड के डिजाइनर भाग में संग्रह में डालता हूं, तो यह ठीक काम करेगा, लेकिन डिजाइनर कोड केवल एक बार चलाया जाता है, जब तक कि मैं रिबन का निपटान नहीं करता और इसे फिर से बना देता हूं।

कोई कैसे मैं इस काम कर

उत्तर

0

सामान्यतया प्राप्त कर सकते हैं के बारे में विचारों, VSTO आप पूरी तरह UI तत्व आप एक समय की जरूरत है, बहुत पहले समय (GetCustomUI के माध्यम से) आप उन्हें मांगा जाता है तो वर्णन करने के लिए चाहता है।

मैंने vsto से पहले समान प्रोब में भाग लिया है और इसके आस-पास के एकमात्र उचित तरीके के बारे में मैंने पाया है कि आपको आवश्यक सभी तत्वों को डिज़ाइन करना होगा (इसलिए चलो 10 ड्रॉप आइटम सूची)।

फिर, प्रोग्रामेटिक रूप से छिपाएं या उन आइटमों को दिखाएं और अपने ऐडिन चलाने के दौरान आवश्यकतानुसार उनके कैप्शन और अन्य गुणों को अपडेट करें।

इस तरह, आपको कुछ भी गतिशील रूप से जोड़ने या हटाने की आवश्यकता नहीं है।

+0

मैंने कभी इस तरह से सोचा नहीं, धन्यवाद बहाव! – CodeMinion

+0

कोई जांच नहीं। यह थोड़ा अजीब और हैकिश है, और यह सुविधाओं की एक निश्चित श्रेणी को थोड़ा मुश्किल बना सकता है, लेकिन जहां तक ​​मुझे पता है, यह आपके पास एकमात्र विकल्प है। – DarinH

+2

अगर मुझे गलत नहीं लगता है, तो यह उत्तर सादा झूठा है। अन्य उत्तरों देखें। –

0

रिबन गैलरी का उपयोग करने का प्रयास करें। मैं कम से कम

foreach (string s in list) 
{ 
    RibbonDropDownItem item = new RibbonDropDownItem();     
    item.Label = s; 
    rGallery.Items.Add(item);     
} 

जहां rGallery एक RibbonGallery है के साथ चलाने के समय के दौरान उन्हें संशोधित करने के लिए सक्षम है।

+0

मुझे ड्रॉपडाउन के लिए रिबन गैलरी को प्रतिस्थापित करने की आवश्यकता नहीं दिखती है - आपकी विधि ड्रॉपडाउन के साथ ठीक काम करती है। Sadanand sudeer का जवाब देखें। –

30

इसे आजमाएं। यह आपके लिए काम करना चाहिए।

RibbonDropDownItem item 
     = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem(); 
item.Label = "First Name"; 
this.cbRecent.Items.Add(item); 
+2

यह स्वीकार्य उत्तर होना चाहिए। – dotNET

+0

हैलो .... अगर ड्रॉपडाउन में एक बटन होता है, बटन बटन से पहले जोड़े जाते हैं .... बटन के बाद आइटम जोड़ने का कोई तरीका? – jstuardo

6

निम्नलिखित का प्रयास करें:

RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem(); 
item.Label = "Text"; 
combo.Items.Add(item); 
+1

उत्तर अच्छा लगता है, लेकिन क्या आप थोड़ा सा विवरण प्रदान कर सकते हैं? यह बहुत उपयोगी होगा! –

1

jeds, अपने दृष्टिकोण के साथ 'नई' काम नहीं करता। आपको "Globals.Factory.GetRibbonFactory()। CreateRibbonDropDownItem()" का उपयोग करना होगा। अन्यथा, आप सही हैं और आपका दृष्टिकोण रिबन गैलरी के साथ बहुत अच्छा काम करता है।

यह दृष्टिकोण ड्रॉपडाउन के साथ भी बहुत अच्छा काम करता है। मैं अभी भी किसके बारे में विवादित हूं ...

हालांकि, उन 2 ऑब्जेक्ट्स (ड्रॉपडाउन और रिबन गैलरी) के अलावा, मुझे विश्वास है कि ड्रैवचर सही है। आपको बस समय से पहले वस्तुओं को बाहर निकालना होगा और आवश्यकतानुसार उनका उपयोग करना होगा।

आप एक्सएमएल रिबन का भी उपयोग कर सकते हैं, लेकिन यह सिरदर्द का एक बड़ा सेट बनाता है (कम से कम मेरे उपयोग के मामलों के लिए)।