2012-09-25 23 views
5

Đây là bổ trợ VS2010 + Office 2010. Tất cả những gì tôi muốn là thêm một nút (hoặc nhóm nút) vào nhiều tab được tích hợp sẵn. Ví dụ: các nút của tôi sẽ có sẵn trong cả hai Băng thông báo thư mới và trong Cuộc hẹn mới Ribbon. Tôi đã thử thêm một tab mới (trong Visual Designer) nhưng điều đó dường như không hoạt động. Nhóm nút xuất hiện trên tab Thư mới, nhưng không xuất hiện trên tab Cuộc hẹn. BTW, tôi đang sử dụng các ID sau: TabNewMailMessageTabAppointment.Cách thêm nhóm vào nhiều tab Ribbon được tích hợp sẵn (vsto)?

Trả lời

4

Đối với bất cứ ai khác kéo tóc của họ về vấn đề này, cách duy nhất tôi có thể nhìn thấy nhóm của tôi trên cả hai bổ nhiệm và New Mail Message tab là bằng cách thêm một Ribbon cho mỗi tab dựng sẵn, và sau đó sao chép/dán tất cả giao diện người dùng và mã từ một dải ruy-băng sang dải kia. Hãy chắc chắn rằng bạn chọn đúng RibbonType (một thuộc tính của Ruy-băng của bạn) cho mỗi tab dựng sẵn.

+0

âm thanh về quyền :) – Tangocoder

0

Tôi không có Outlook, nhưng tôi đã sử dụng sau đây trong Word/Excel/PPT, vì vậy tôi hy vọng nó sẽ làm việc trong Outlook là tốt (chưa được kiểm tra!).

Thử thêm một mục Ribbon (XML) và sau đó thêm hai tab bằng một nút trông giống nhau và gọi cùng một mã nhưng với các ID khác nhau.

XML:

<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> 

C#:

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

Cảm ơn Olle. Tôi cũng mong đợi rằng để làm việc, nhưng không may nó không. Ý tưởng của tôi là có thể vì Mail Compose và Appointment là hai Thanh tra khác nhau và do đó cần phải được chọn trong thuộc tính RibbonType của Ribbon. Tôi thậm chí đã cố gắng chọn nhiều loại ribbon ở đó, nhưng điều đó cũng không hoạt động. Cách duy nhất nó làm việc cho tôi là thêm Ribbon mới. Xem câu trả lời của tôi dưới đây. – dotNET

+0

OK, tuyệt vời mà bạn đã tìm thấy và đăng câu trả lời! –

+0

Người dùng @magicnumber có câu trả lời để làm việc bằng cách đặt 'ButtonOnAction' thành' công khai' - cảm ơn bạn đã cập nhật! –

0

Tương tự như câu trả lời ở trên nhưng không sử dụng XML, bạn có thể nhóm ở hai vị trí khác nhau thêm tab thứ hai.

Trong trình thiết kế Ribbon thêm tab thứ hai vào ruy-băng và thay đổi ControlID thành vị trí thứ hai bạn muốn xem nhóm của mình. Sau đó, nhấp chuột phải vào nhóm trong tab gốc và nhấp vào sao chép. Nhấp lại vào tab mới và dán nhóm vào đó. Nó sẽ sao chép bất cứ thứ gì đã có trong nhóm. Bạn sẽ, tuy nhiên, phải thêm các sự kiện trở lại. Nhưng đối với tôi tôi chỉ tái sử dụng các sự kiện đã được tạo ra và nó hoạt động hoàn hảo. CHEERS.

Các vấn đề liên quan