Wrapper class RibbonItems - harborsiem/WinForms-Ribbon GitHub Wiki
The custom build tool RibbonTools64 generates source files named RibbonItems.Designer.cs for the programming language C# or RibbonItems.Designer.vb for Visual Basic as default class name. In this file you get a wrapper class for all Ribbon items (Controls, ...) one defined in the RibbonMarkup.xml file. The wrapper class does the instantiation for all Ribbon items and gives you the defined Ids. You should not modify this file. The wrapper class is defined as a partial class. So, you can extend this class by a file named RibbonItems.cs with the same namespace and class name. The namespace of the wrapper class is always “WinForms.Ribbon” and the class name is RibbonItems. Don’t forget the partial keyword at the class declaration. The constructor of the wrapper class RibbonItems have to be called in the Form constructor after InitializeComponent(). The parameter of the constructor is the RibbonStrip Control which is placed to the Form. In the file RibbonItems.cs you can define the whole logic including events for the Ribbon items. In your user defined RibbonItems.cs (RibbonItems.vb) you can also define additional constructors with some more parameters if you need them in your logic. These constructors have to call the standard constructor in RibbonItems.Designer.cs with the RibbonStrip Control as parameter.
Example MainForm
...
using WinForms.Ribbon;
namespace your_namespace
{ public partial class MainForm : Form
{
private RibbonItems _ribbonItems;
public MainForm()
{
InitializeComponent();
ribbon.RibbonEventException += Ribbon_RibbonEventException;
_ribbonItems = new RibbonItems(ribbon);
_ribbonItems.Init(this);
}
}
}
File: RibbonItems.cs
namespace WinForms.Ribbon
{
partial class RibbonItems
{
/// <summary>
/// Must be called from MainForm Constructor
/// </summary>
/// <param name="form">The MainForm</param>
public void Init(MainForm form)
{
...
}
[!Hint] If you have more than one RibbonStrip controls for different Forms in the project, then you should use RibbonTools64 settings option "Wrapper class name like Markup file instead RibbonItems".
With this optional setting switch "Wrapper class name like Markup file instead RibbonItems" one can generate a wrapper file and class name like the markup file. The namespace for these classes are always WinForms.Ribbon. This will help for multiple RibbonStrip controls in an application.