2012-09-25 25 views
5

यह वीएस -2010 + ऑफिस 2010 एड-इन है। मैं चाहता हूं कि एक से अधिक अंतर्निहित टैब में एक बटन (या बटन समूह) जोड़ना है। उदाहरण के लिए, मेरे बटन दोनों नए मेल संदेश रिबन और नई नियुक्ति रिबन दोनों में उपलब्ध होना चाहिए। मैंने विजुअल डिज़ाइनर में एक नया टैब () जोड़ने का प्रयास किया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। बटन समूह न्यू मेल संदेश टैब पर दिखाई देता है, लेकिन नियुक्ति टैब पर नहीं। बीटीडब्ल्यू, मैं निम्नलिखित आईडी का उपयोग कर रहा हूं: TabNewMailMessage और TabAppointmentएकाधिक अंतर्निहित रिबन टैब (vsto) में समूह को कैसे जोड़ा जाए?

उत्तर

4

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

+0

सही के बारे में लगता है :) – Tangocoder

0

मेरे पास Outlook नहीं है, लेकिन मैंने वर्ड/एक्सेल/पीपीटी में निम्नलिखित का उपयोग किया है, इसलिए मुझे उम्मीद है कि यह Outlook में भी काम करेगा (अनचाहे!)।

एक रिबन (एक्सएमएल) आइटम जोड़ने का प्रयास करें और उसके बाद दो टैब को एक बटन के साथ जोड़ें जो समान दिखता है और अलग-अलग आईडी के साथ कॉल करता है।

एक्सएमएल:

<tab idMso="TabNewMailMessage"> 
    <group id="MyGroup1" label="My Group1"> 
     <button id="myButton1" label="Button 1" size="large" onAction="ButtonOnAction" /> 
    </group> 
</tab> 
<tab idMso="TabAppointment"> 
    <group id="MyGroup2" label="My Group2"> 
     <button id="myButton2" label="Button 2" size="large" onAction="ButtonOnAction" /> 
    </group> 
</tab> 

सी #:

public void ButtonOnAction(IRibbonControl control) 
    { 
     switch (control.Id) 
     { 
      case "myButton1": 
      case "myButton2": 
       // do something 
       Console.Out.WriteLine("Button ID: {0}", control.Id); 
       break; 
     } 
    } 
+0

ओले धन्यवाद। मुझे भी उम्मीद है कि काम करने के लिए, लेकिन दुर्भाग्यपूर्ण यह नहीं है। मेरा विचार यह है कि शायद यह इसलिए है क्योंकि मेल लिखें और नियुक्ति दो अलग-अलग निरीक्षकों हैं और इसलिए रिबन की रिबन टाइप संपत्ति में चयन करने की आवश्यकता है। मैंने वहां कई रिबन प्रकारों का चयन करने की भी कोशिश की, लेकिन यह भी काम नहीं करता है। मेरे लिए काम करने का एकमात्र तरीका एक नया रिबन जोड़ना था। नीचे मेरा जवाब देखें। – dotNET

+0

ठीक है, आपने पाया कि उत्तर मिला और उत्तर पोस्ट किया! –

+0

उपयोगकर्ता @magicnumber को 'ButtonOnAction' को 'public' पर सेट करके काम करने का उत्तर मिला - अपडेट के लिए धन्यवाद! –

0

ऊपर दिए गए उत्तर के समान लेकिन एक्सएमएल का उपयोग किए बिना, आप समूह को दो अलग-अलग स्थानों में एक दूसरा टैब जोड़ सकते हैं।

रिबन डिजाइनर में रिबन में दूसरा टैब जोड़ें और कंट्रोल आईडी को दूसरे स्थान पर बदलें जिसे आप अपना समूह देखना चाहते हैं। फिर मूल टैब में समूह पर राइट क्लिक करें और कॉपी पर क्लिक करें। नए टैब पर वापस क्लिक करें और समूह को पेस्ट करें। यह पहले से ही समूह में मौजूद किसी भी चीज की प्रतिलिपि बनायेगा। हालांकि, आपको घटनाओं को वापस जोड़ना होगा। लेकिन मेरे लिए मैंने पहले ही बनाई गई घटनाओं का पुन: उपयोग किया है और यह पूरी तरह से काम करता है। चीयर्स।