'Declaration
Public Event OwnerDrawCell As OwnerDrawCellEventHandler
public event OwnerDrawCellEventHandler OwnerDrawCell
The event handler receives an argument of type OwnerDrawCellEventArgs containing data related to this event. The following OwnerDrawCellEventArgs properties provide information specific to this event.
Property | Description |
---|---|
Bounds | Get the rectangle where the cell will be painted (in client coordinates). |
Col | Get the column index of the cell being painted. |
Graphics | Gets the Graphics object used to draw the cell. Use this object to draw custom elements in the cell. |
Handled | Gets or sets whether the event has finished drawing the cell. |
Image | Gets or sets the image that will be displayed in the cell. |
Measuring | Gets a value that determines if the event was fired only to measure the cell. |
Row | Get the row index of the cell being painted. |
Style | Sets or sets the CellStyle object used to paint the cell. |
Text | Gets or sets the text that will be displayed in the cell. |
The OwnerDrawCell event only fires when the DrawMode property is set to DrawModeEnum.OwnerDraw.
You can use this event to customize the appearance of any cell in the grid. The event allows three main types of customization:
- Change the value of the Text and Image parameters to modify the values displayed by the grid. You can use this type of customization to replace password strings with asterisks, for example.
- Change the Style property to display the cell using a different style than the one selected by the grid by default. You can use this type of customization to provide conditional formatting, for example.
- Use the Graphics and Bounds parameters and draw the cell yourself. When drawing cells this way, you may call the OwnerDrawCellEventArgs.DrawCell member to force the grid to draw specific parts of the cell, while your code draws other parts. For example, you could paint a custom background and then call DrawCell to have the grid paint the cell border and contents.
The OwnerDrawCell event also fires when the grid auto sizes rows or columns (see the AutoSizeRows(Int32,Int32,Int32,Int32,Int32,AutoSizeFlags) and AutoSizeCols(Int32,Int32,Int32,Int32,Int32,AutoSizeFlags) methods). This is done because the grid needs to measure the cell using the same text, image, and style parameters that are used to render it. In these cases, the Measuring parameter is set to true and the Bounds rectangle is empty.