Back to Devexpress

PivotGridControl.CustomDrawCell Event

windowsforms-devexpress-dot-xtrapivotgrid-dot-pivotgridcontrol-ee1c221e.md

latest29.9 KB
Original Source

PivotGridControl.CustomDrawCell Event

Enables data cells to be painted manually.

Namespace : DevExpress.XtraPivotGrid

Assembly : DevExpress.XtraPivotGrid.v25.2.dll

NuGet Package : DevExpress.Win.PivotGrid

Declaration

csharp
public event PivotCustomDrawCellEventHandler CustomDrawCell
vb
Public Event CustomDrawCell As PivotCustomDrawCellEventHandler

Event Data

The CustomDrawCell event's data class is PivotCustomDrawCellEventArgs. The following properties provide information specific to this event:

PropertyDescription
AppearanceGets the painted cell’s appearance settings.
BoundsGets the cell’s bounds. Inherited from PivotCellEventArgs.
ColumnCustomTotalGets the column custom total which displays the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnFieldGets the innermost column field which corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnFieldIndexFor internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnIndexGets the visual index of the column that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ColumnValueTypeGets the type of column which contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DataFieldGets the data field which identifies the column where the processed cell resides. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DisplayTextGets the display text of the cell currently being processed. Inherited from PivotCellEventArgs.
FocusedGets whether the processed cell is the focused cell. Inherited from PivotCellEventArgs.
GraphicsGets the object used to paint a cell.
GraphicsCacheGets an object which specifies the storage for the most used pens, fonts and brushes.
HandledGets or sets whether an event was handled, if it was handled the default actions are not required.
RowCustomTotalGets the row custom total which contains the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowFieldGets the innermost row field that corresponds to the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowFieldIndexFor internal use. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowIndexGets the index of the row that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
RowValueTypeGets the type of row that contains the processed cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SelectedGets whether the processed cell is selected. Inherited from PivotCellEventArgs.
SummaryTypeGets the summary type of the currently processed value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
SummaryValueGets the summary value currently being processed. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
ThreadSafeArgsGets an event parameter that provides thread-safe access to event data.
ValueGets the processed cell’s value. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.

The event data class exposes the following methods:

MethodDescription
CreateDrillDownDataSource()Returns data records used to calculate a summary value for the cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateDrillDownDataSource(List<String>)Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateDrillDownDataSource(Int32, List<String>)Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateDrillDownDataSource(Int32)Returns data records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateDrillDownDataSourceAsync()Returns a list of records used to calculate a summary value for the specified cell asynchronously. Inherited from PivotCellEventArgs.
CreateDrillDownDataSourceAsync(List<String>)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns to return. Inherited from PivotCellEventArgs.
CreateDrillDownDataSourceAsync(Int32, List<String>)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgs.
CreateDrillDownDataSourceAsync(Int32)Returns data records used to calculate a summary value for the current cell asynchronously. Allows you to specify the columns and limit the number of records to return. Inherited from PivotCellEventArgs.
CreateOLAPDrillDownDataSource(List<String>)Obsolete. In OLAP mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateOLAPDrillDownDataSource(Int32, List<String>)Obsolete. In OLAP mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateServerModeDrillDownDataSource(List<String>)Obsolete. In server mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateServerModeDrillDownDataSource(Int32, List<String>)Obsolete. In server mode, returns a list of records used to calculate a summary value for the current cell. Allows you to specify the columns and limit the number of records to be returned. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
CreateSummaryDataSource()Returns a summary data source. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
DefaultDraw()Performs default painting of an element.
GetCellValue(TField)Returns a cell value calculated against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetCellValue(PivotGridField)Returns a cell value calculated for the current column and row field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetCellValue(Int32, Int32)Returns a cell value by the column and row indexes. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetCellValue(Object[], Object[], TField)Returns a cell value calculated for the specified column and row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetCellValue(Object[], Object[], PivotGridField)Returns a cell value calculated for the specified column and row field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetColumnFields()Returns an array of column fields that correspond to the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetColumnGrandTotal(TField)Returns a Column Grand Total value calculated for the current row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetColumnGrandTotal(PivotGridField)Returns a Column Grand Total value calculated for the current row field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetColumnGrandTotal(Object[], TField)Returns a Column Grand Total value calculated for the specified row field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetColumnGrandTotal(Object[], PivotGridField)Returns a Column Grand Total value calculated for the specified row field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetFieldValue(TField, Int32)Returns the specified column or row field’s value for the cell, addressed by its zero-based index in the data area. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetFieldValue(TField)Returns the value of the specified column or row field that identifies the column/row in which the processed cell resides. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetFieldValue(PivotGridField, Int32)Returns a field value that belongs to the specified field and corresponds to a data cell with the specified column or row index. Inherited from PivotCustomDrawCellBaseEventArgs.
GetFieldValue(PivotGridField)Returns a field value that belongs to the specified field and corresponds to the current data cell. Inherited from PivotCustomDrawCellBaseEventArgs.
GetGrandTotal(TField)Gets the Grand Total value for the specified field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetGrandTotal(PivotGridField)Returns the Grand Total value calculated against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetNextColumnCellValue(TField)Returns the value of the cell in the same row but in the next column. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetNextColumnCellValue(PivotGridField)Returns the value of the cell located in the next column of the current row. Inherited from PivotCustomDrawCellBaseEventArgs.
GetNextRowCellValue(TField)Returns the value of the cell in the next row. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetNextRowCellValue(PivotGridField)Returns the value of the cell located in the next row of the current column. Inherited from PivotCustomDrawCellBaseEventArgs.
GetPrevColumnCellValue(TField)Returns the value of the cell in the same row but in the previous column. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetPrevColumnCellValue(PivotGridField)Returns the value of the cell located in the previous column of the current row. Inherited from PivotCustomDrawCellBaseEventArgs.
GetPrevRowCellValue(TField)Returns the value of the cell in the previous row. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetPrevRowCellValue(PivotGridField)Returns the value of the cell located in the previous row of the current column. Inherited from PivotCustomDrawCellBaseEventArgs.
GetRowFields()Returns an array of the row fields that correspond to the current cell. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetRowGrandTotal(TField)Returns a Row Grand Total value calculated for the current column field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetRowGrandTotal(PivotGridField)Returns a Row Grand Total value calculated for the current column field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
GetRowGrandTotal(Object[], TField)Returns a Row Grand Total value calculated for the specified column field values, against the specified data field. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
GetRowGrandTotal(Object[], PivotGridField)Returns a Row Grand Total value calculated for the specified column field values, against the specified data field. Inherited from PivotCustomDrawCellBaseEventArgs.
IsFieldValueExpanded(TField)Indicates whether the specified field’s value that represents the row or column header of the processed cell is expanded. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
IsFieldValueExpanded(PivotGridField)Indicates whether a field value that belongs to the specified field and corresponds to the current cell is expanded. Inherited from PivotCustomDrawCellBaseEventArgs.
IsFieldValueRetrievable(TField)Gets whether the value of the specified column or row field can be retrieved for the current cell by the PivotCellEventArgsBase<TField, TData, TCustomTotal>.GetFieldValue method. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
IsFieldValueRetrievable(PivotGridField)Gets whether the value of the specified column or row field can be retrieved for the current cell by the PivotCustomDrawCellBaseEventArgs.GetFieldValue method. Inherited from PivotCustomDrawCellBaseEventArgs.
IsOthersFieldValue(TField)Indicates whether the processed data cell resides within the “Others” row/column when the Top X Value feature is enabled. Inherited from PivotCellEventArgsBase<TField, TData, TCustomTotal>.
IsOthersFieldValue(PivotGridField)Indicates whether the current data cell resides within the “Others” row/column when the Top X Value feature is enabled. Inherited from PivotCustomDrawCellBaseEventArgs.

Remarks

The CustomDrawCell event is raised before a data cell is painted. The event parameter provides all the information necessary to paint a cell. Set the PivotCustomDrawCellEventArgs.Handled property to true to prohibit default cell painting.

Note

Custom drawing of any kind is ignored when printing PivotGridControl. To change the appearance of cells when the Pivot Grid Control is displayed onscreen and in the print output, handle the PivotGridControl.CustomAppearance event.

Note

To access event data while an asynchronous operation is being performed, use a thread-safe event parameter returned by the PivotCustomDrawCellEventArgs.ThreadSafeArgs property. To learn more, see Asynchronous Mode.

Important

Do not change cell values, modify the control’s layout, or change the control’s object model in the events used for custom control painting. Actions that update the layout can cause the control to malfunction.

Example

The following sample code handles the PivotGridControl.CustomDrawCell event to custom paint Grand Total cells. The image below shows the result.

csharp
using DevExpress.XtraPivotGrid;
using System.Drawing;

private void PivotGridControl1_CustomDrawCell(object sender, PivotCustomDrawCellEventArgs e)
{
  if (e.ColumnValueType == PivotGridValueType.GrandTotal ||
    e.RowValueType == PivotGridValueType.GrandTotal)
  {
    Rectangle r;
    Brush brushFillTotals;
    brushFillTotals = e.GraphicsCache.GetSolidBrush(ColorTranslator.FromHtml("#0099cc"));
    r = e.Bounds;
    e.GraphicsCache.FillRectangle(brushFillTotals, e.Bounds);
    r.Inflate(-4, -4);
    e.GraphicsCache.DrawString(e.DisplayText, e.Appearance.Font,
    Brushes.White, r, e.Appearance.GetStringFormat());
    e.Handled = true;
  }
}
vb
Imports DevExpress.XtraPivotGrid
Imports System.Drawing

Private Sub PivotGridControl1_CustomDrawCell(ByVal sender As Object, ByVal e As PivotCustomDrawCellEventArgs)
  If e.ColumnValueType = PivotGridValueType.GrandTotal OrElse e.RowValueType = PivotGridValueType.GrandTotal Then
    Dim r As Rectangle
    Dim brushFillTotals As Brush
    brushFillTotals = e.GraphicsCache.GetSolidBrush(ColorTranslator.FromHtml("#0099cc"))
    r = e.Bounds
    e.GraphicsCache.FillRectangle(brushFillTotals, e.Bounds)
    r.Inflate(-4, -4)
    e.GraphicsCache.DrawString(e.DisplayText, e.Appearance.Font, Brushes.White, r, e.Appearance.GetStringFormat())
    e.Handled = True
  End If
End Sub

See Also

CustomAppearance

PivotGridControl.CustomDrawFieldHeaderArea

CustomDrawFieldHeader

CustomDrawFieldValue

PivotGridControl Class

PivotGridControl Members

DevExpress.XtraPivotGrid Namespace