Provides data and methods for painting column panel on the Header

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

Syntax

C#
public sealed class PaintColumnPanelEventArgs : EventArgs
Visual Basic
Public NotInheritable Class PaintColumnPanelEventArgs
	Inherits EventArgs
Visual C++
public ref class PaintColumnPanelEventArgs sealed : public EventArgs
F#
[<SealedAttribute>]
type PaintColumnPanelEventArgs =  
    class
        inherit EventArgs
    end

Remarks

.Net Grid provides broad functionality of displaying various grid elements, such as cells, rows, headers and columns.

There two ways for grid customization:

Generally paint arguments contain the following information:

  • Full and clipped sizes of the painted element
  • Graphics object
  • Colors and parameters used for elemebt painting (they can be altered)
  • Methods for painting every single part of an element (for a Cell there are methods for painting background, text, selection, focus etc.)
  • Painting filter PaintPart, which allows to skip a certain part of an element (partial painting)
  • PaintAll() method that paints all elements defined in the PaintPart filter
  • Handled property that forbids a grid to perform default painting

Note that the whole painting process is accumulated in paint arguments object and consists of the following: a grid creates PaintXXXEventArgs object, sets default parameters, fires Grid.PaintXXX event, and if Handled property is set to false, invokes PaintAll() method. This mechanism is used to paint all elements of the .Net Grid cells, rows, columns, headers, hierarchy tree etc.

We have intentionally described the process of painting in details to show broad and rich abilities of grid customization. In other words, you may customize any parameters, some painted elements (cell, column) and even use Graphics object to manipulate the grid. Even better, this approach enables you to define a painting sequence. For example, you may perform some default actions and then finish drawing with the Graphics object, or do it vice versa!

The following example shows how customize painting in column

 Copy imageCopy
public void InitializeGrid(Grid grid)
{
    Bitmap image = new Bitmap("image.ico");

    //Subscribe for column painting event
    grid.PaintColumnCaption += delegate(object sender, PaintColumnCaptionEventArgs e)
    {
        using (Brush brush = new SolidBrush(Color.DeepPink))
        {
            //Prevent from text painting
            e.Parts &= e.Parts ^ PaintPart.Text;

            //Another way to paint the custom text (do not turn off the PaintPart.Text):
            e.Text = "New text to show in column";

            //Set a new background color
            e.Appearance.BackColor = Color.Yellow;

            //Do default painting
            e.PaintAll();
            e.Handled = true;

            //Draw a custom image above already pained cell
            e.Graphics.DrawImage(image, e.VirtualBounds);
        }
    };
}

Inheritance Hierarchy

System..::..Object
  System..::..EventArgs
    Dapfor.Net.Ui..::..PaintColumnPanelEventArgs

See Also