Invalidates this Header.

Namespace: Dapfor.Net.Ui
Assembly: Dapfor.Net (in Dapfor.Net.dll) Version: 2.10.3.24917 (2.10.3.24917)

Syntax

C#
public void Invalidate()
Visual Basic
Public Sub Invalidate
Visual C++
public:
void Invalidate()
F#
member Invalidate : unit -> unit 

Remarks

If the header is located in the hierarchical grid (not top-level header), all duplicates in visible surface are repainted.

It is well known that System.Windows.Forms controls use standard Windows API based on window messages. To repaint a certain part of a control, it should invoke the Control.Invalidate(Rectangle rect) method, where Rectangle specifies location and size of the client surface that should be repainted. In general, the calculation of screen coordinates of an element is a quite complicated process, especially in a hierarchical data grid. The .Net Grid provides very convenient API to repaint different elements such as cells, rows, columns etc.

  • Cell.Invalidate() - Repainting of a single cell.
  • Row.Invalidate() - Repainting of a single row.
  • Header.Invalidate() - Header invalidation. If the header is located in the hierarchical grid (not top-level header), all duplicates in visible surface are repainted.
  • Header.InvalidateRows() - Repaint all rows in the grid on the same hierarchical level as the header.
  • Column.Invalidate() - Column title invalidation.
  • Column.InvalidateCells() - Repainting of all cells in the grid that are related to a certain column located on the same hierarchical level as a header.
 Copy imageCopy
public void InvalidateUiElements(Grid grid)
{
    //Add a new header on the top hierarchical level (level 0)
    Header header1 = new Header();
    header1.Add(new Column("Name"));
    header1.Add(new Column("Price"));
    header1.Add(new Column("Quantity"));
    grid.Headers.Add(header1);

    Header header2 = new Header();
    header2.Add(new Column("Name"));
    header2.Add(new Column("Date"));
    grid.Headers.Add(header2);


    //Add some data objects 
    Row product1 = grid.Rows.Add(new Product());
    Row product2 = grid.Rows.Add(new Product());

    //Add some customers to the first product
    Row customer1 = product1.Add(new Customer());
    Row customer2 = product1.Add(new Customer());

    //Add some customers to the another product
    Row customer3 = product2.Add(new Customer());

    //Expand all rows
    grid.Rows.ExpandAll();


    //Invalidate the cell
    customer1["Date"].Invalidate();

    //Invalidate the row
    customer1.Invalidate();

    //Invalidate the top-level header
    header1.Invalidate();

    //Invalidate product1 and product2
    header1.InvalidateRows();

    //Invalidate the column's caption 'Date' on the header2
    header2["Date"].Invalidate();

    //Invalidate the cell 'Date' of each customer
    header2["Date"].InvalidateCells();
}

See Also