Add Controls to an End-User Report Designer's Toolbox

This example illustrates how to add a custom control to an End-User Report Designer's toolbox by handling the XRDesignMdiController.DesignPanelLoaded event and accessing the toolbox service.

Tip

This code adds the XRZipCode control to the toolbox. It is hidden by default because most countries do not use it.

See Using Custom and Third-Party Controls to learn how to create custom report controls and add them to a Report Designer's toolbox.

using DevExpress.XtraReports.UI;
using DevExpress.XtraReports.UserDesigner;
using System.Drawing.Design;
// ...

private void button1_Click(object sender, System.EventArgs e) {
    // Create a Design Tool with an assigned report instance.
    ReportDesignTool designTool = new ReportDesignTool(new XtraReport1());

    // Access the standard or ribbon-based Designer form.
    // IDesignForm designForm = designTool.DesignForm;
    IDesignForm designForm = designTool.DesignRibbonForm;

    // Handle the Design Panel's Loaded event.
    designForm.DesignMdiController.DesignPanelLoaded += DesignMdiController_DesignPanelLoaded;

    // Load a Report Designer in a dialog window.
    // designTool.ShowDesignerDialog();
    designTool.ShowRibbonDesignerDialog();
}

void DesignMdiController_DesignPanelLoaded(object sender, DesignerLoadedEventArgs e) {
    // Access the Toolbox service.
    IToolboxService toolboxService =
        (IToolboxService)e.DesignerHost.GetService(typeof(IToolboxService));

    // Add a custom control to a new category.
    toolboxService.AddToolboxItem(new ToolboxItem(typeof(XRZipCode)), "New Category");

    // Add a custom control to the default category.
    // toolboxService.AddToolboxItem(new ToolboxItem(typeof(XRZipCode)));
}
Tip

The added report control becomes available for any report opened in the Report Designer.

See Make a Custom Control Available Only for a Specific Report to learn how to make added controls available only for specific reports.

See Also