Spread Windows Forms 17
Spread Windows Forms 17.0 Product Documentation / Developer's Guide / Customizing Row or Column Interaction / Managing Filtering of Rows of User Data / Setting the Appearance of Filter Indicators / Using Custom Filter Indicator Images
In This Topic
    Using Custom Filter Indicator Images
    In This Topic

    You can customize the filter indicator image that appears in the column header of columns that have filters assigned. One of the default images is shown here in the second (B) column.

    Filter indicator image

    One way is to override the PaintFilterIndicator method in the CellType ColumnHeaderRenderer class and create your own custom filter indicator.

    Another way is to use the GetImage and SetImage methods in the SpreadView class, which is described in Customizing the User Interface Images.

    Using Code

    1. Create a new column header renderer with the ColumnHeaderRenderer class.
    2. Override the PaintSortIndicator method.
    3. Override the PaintFilterIndicator method.

    Example

    This example illustrates how to set create a custom filter in code, by first creating a new column header renderer, and then customizing the filter indicator that appears in the column header.

    C#
    Copy Code
    // In the form load section, allow filtering (and sorting).
    private void Form1_Load(object sender, System.EventArgs e)
    {
      fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = new myColumnHeaderRenderer();
      fpSpread1.Sheets[0].Columns[0].AllowAutoSort =true;
      fpSpread1.Sheets[0].Columns[0].AllowAutoFilter =true;
    }
    // Define a new column header renderer.
    public class myColumnHeaderRenderer : FarPoint.Win.Spread.CellType.ColumnHeaderRenderer
    {
      // Override the sorting indicator paint method.
      override public void PaintSortIndicator(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
      {
          g.FillRectangle(new SolidBrush(Color.Red), r);
      }
      // Override the filtering indicator paint method.
      override public void PaintFilterIndicator(Graphics g, Rectangle r, FarPoint.Win.Spread.Appearance appearance, float zoomFactor)
      {
          g.FillRectangle(new SolidBrush(Color.Blue), r);
      }
    } //End Form1_Load
    
    VB
    Copy Code
    ' Define a new column header renderer.
    Public Class myColumnHeaderRenderer
    Inherits FarPoint.Win.Spread.CellType.ColumnHeaderRenderer
      ' Override the sorting indicator paint method.
      Public Overrides Sub PaintSortIndicator(ByVal g As Graphics, ByVal r As Rectangle, ByVal appearance As FarPoint.Win.Spread.Appearance, ByVal zoomFactor As Single)
        g.FillRectangle(New SolidBrush(Color.Red), r)
      End Sub 'PaintSortIndicator
      ' Override the filtering indicator paint method.
      Public Overrides Sub PaintFilterIndicator(ByVal g As Graphics, ByVal r As Rectangle, ByVal appearance As FarPoint.Win.Spread.Appearance, ByVal zoomFactor As Single)
        g.FillRectangle(New SolidBrush(Color.Blue), r)
      End Sub 'PaintFilterIndicator
    End Class 'myColumnHeaderRenderer
    ' In the form load section, allow sorting and filtering.
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = New myColumnHeaderRenderer
      fpSpread1.Sheets(0).Columns(0).AllowAutoSort = True
      fpSpread1.Sheets(0).Columns(0).AllowAutoFilter = True
    End Sub 'Form1_Load