Skip to main content

FilterControlPropertiesEventArgs Class

Provides data for the XtraReport.FilterControlProperties event.

Namespace: DevExpress.XtraReports.UserDesigner

Assembly: DevExpress.XtraReports.v22.1.dll


public class FilterControlPropertiesEventArgs :


The XtraReport.FilterControlProperties event occurs every time a PropertyGrid refreshes its list of items in the End-User Designer. The FilterControlPropertiesEventArgs class introduces the FilterControlPropertiesEventArgs.Control property, which provides access to a control whose properties can be filtered, and the FilterControlPropertiesEventArgs.Properties collection which contains a control’s properties, which can be hidden from the Properties window.


FilterControlPropertiesEventArgs objects are automatically created, initialized and passed to the XtraReport.FilterControlProperties event handlers.


This sample illustrates how to hide properties of a report and its controls from the End-User Report Designer‘s Properties panel.

Handle the static XtraReport.FilterComponentProperties event to remove items from the Properties tab.

Use the ExpressionBindingDescriptor.HidePropertyDescriptions method to remove properties from the Expressions tab available when the UserDesignerOptions.DataBindingMode is set to DataBindingMode.Expressions or DataBindingMode.ExpressionsAdvanced.

using System;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
using DevExpress.XtraReports.UserDesigner;
using System.ComponentModel;
using DevExpress.XtraReports.Expressions;
// ...
static class Program {
    static void Main() {

        // Handle the static FilterComponentProperties event to filter the Properties window. 
        XtraReport.FilterComponentProperties += XtraReport_FilterComponentProperties;

        // For the XRLabel control, hide the Background Color and Tag properties from the Expressions tab.
        ExpressionBindingDescriptor.HidePropertyDescriptions(typeof(XRLabel), "BackColor", "Tag");
        Application.Run(new Form1());

    static void XtraReport_FilterComponentProperties(object sender, 
        FilterComponentPropertiesEventArgs e) {
        // Hide the Scripts property for all report elements.
        HideProperty("Scripts", e);

        // Hide the ReportSource and ReportSourceUrl properties for subreports.
        if (e.Component is XRSubreport) {
            HideProperty("ReportSource", e);     
            HideProperty("ReportSourceUrl", e);    

        // Hide the Name property for a specific label control.
        if (sender is XtraReport1 && e.Component is XRControl && 
            ((XRControl)e.Component).Name == "label1") {
            HideProperty("Name", e);


    static void HideProperty(String propertyName, 
        FilterComponentPropertiesEventArgs filterComponentProperties) {
        PropertyDescriptor oldPropertyDescriptor = 
            filterComponentProperties.Properties[propertyName] as PropertyDescriptor;
        if (oldPropertyDescriptor != null) {
            // Substitute the current property descriptor 
            // with a custom one with the BrowsableAttribute.No attribute.
            filterComponentProperties.Properties[propertyName] = TypeDescriptor.CreateProperty(
                new Attribute[] { BrowsableAttribute.No });
        else {
            // If the property descriptor cannot be substituted, 
            // remove it from the Properties collection.


See Also