PropertyGridControl.CustomRowCreated Event
Allows you to customize PropertyGridControl rows when this PropertyGridControl has the Office View applied.
Namespace: DevExpress.XtraVerticalGrid
Assembly: DevExpress.XtraVerticalGrid.v25.1.dll
NuGet Packages: DevExpress.Win.Navigation, DevExpress.Win.VerticalGrid
Declaration
Event Data
The CustomRowCreated event's data class is DevExpress.XtraVerticalGrid.Events.CustomRowCreatedEventArgs.
Remarks
The CustomRowCreated event fires when the PropertyGridControl generates rows in Office View mode. This event allows you to customize created rows.
Example - Display Trackbar for Numeric Property
The following CustomRowCreated event handler adds a trackbar editor for the BorderSize numeric property. The handler typecasts the Row event parameter to the PGridNumericEditorRow class and enables the PGridNumericEditorRow.ShowTrackBar setting. The row’s PGridNumericEditorRow.MinValue and PGridNumericEditorRow.MaxValue properties specify the trackbar’s boundary values.

private void PropertyGridControl1_CustomRowCreated(object sender, DevExpress.XtraVerticalGrid.Events.CustomRowCreatedEventArgs e) {
if (e.Row.Properties.FieldName == "BorderSize") {
PGridNumericEditorRow row = e.Row as PGridNumericEditorRow;
row.MinValue = 0;
row.MaxValue = 10;
row.ShowTrackBar = true;
row.IgnoreMinMaxForSpinEdit = true;
}
}
Example - Hide Editors
The following example displays properties of an AppSettings object in a Property Grid in OfficeView mode. The code handles the PropertyGridControl.CustomRowCreated event to hide editors for the SystemSettings and ReportSettings properties.

public partial class Form1 : Form {
public AppSettings Settings { get; set; } = new AppSettings();
public Form1() {
InitializeComponent();
propertyGridControl1.ActiveViewType = DevExpress.XtraVerticalGrid.PropertyGridView.Office;
propertyGridControl1.CustomRowCreated += PropertyGridControl1_CustomRowCreated;
propertyGridControl1.SelectedObject = Settings;
}
private void PropertyGridControl1_CustomRowCreated(object sender, DevExpress.XtraVerticalGrid.Events.CustomRowCreatedEventArgs e) {
// Hide editors for "SystemSettings" and "ReportSettings" properties.
if (e.Row.Properties.FieldName == "SystemSettings" || e.Row.Properties.FieldName == "ReportSettings") {
e.Row = new PGridEmptyRow();
e.Handled = true;
}
}
}
public class AppSettings {
[Category("System")]
[DisplayName("System Settings")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public SystemSettings SystemSettings { get; } = new SystemSettings();
[Category("System")]
[DisplayName("Reporting")]
[TypeConverter(typeof(ExpandableObjectConverter))]
public ReportSettings ReportSettings { get; set; } = new ReportSettings();
}
public class SystemSettings {
[DisplayName("Run in background")]
[Category("System")]
[DefaultValue(true)]
public bool RunInBackground { get; set; } = true;
[DisplayName("Process count")]
[Category("System")]
[DefaultValue(2)]
public int ProcessCount { get; set; } = 2;
}
public class ReportSettings {
[DisplayName("Zoom")]
[DefaultValue(100)]
public decimal ZoomFactor { get; set; } = 100;
}