DataGridViewColumnCollection.GetColumnsWidth Method (DataGridViewElementStates)

 

Returns the width, in pixels, required to display all of the columns that meet the given filter requirements.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public int GetColumnsWidth(
	DataGridViewElementStates includeFilter
)

Parameters

includeFilter
Type: System.Windows.Forms.DataGridViewElementStates

A bitwise combination of the DataGridViewElementStates values that represent the filter for inclusion.

Return Value

Type: System.Int32

The width, in pixels, that is necessary to display all of the columns that meet the filter requirements.

Exception Condition
ArgumentException

includeFilter is not a valid bitwise combination of DataGridViewElementStates values.

The following code example illustrates the use of this method. This example is part of a larger example available in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control.

// Paints the custom selection background for selected rows.
void dataGridView1_RowPrePaint(object sender,
        DataGridViewRowPrePaintEventArgs e)
{
    // Do not automatically paint the focus rectangle.
    e.PaintParts &= ~DataGridViewPaintParts.Focus;

    // Determine whether the cell should be painted
    // with the custom selection background.
    if ((e.State & DataGridViewElementStates.Selected) ==
                DataGridViewElementStates.Selected)
    {
        // Calculate the bounds of the row.
        Rectangle rowBounds = new Rectangle(
            this.dataGridView1.RowHeadersWidth, e.RowBounds.Top,
            this.dataGridView1.Columns.GetColumnsWidth(
                DataGridViewElementStates.Visible) -
            this.dataGridView1.HorizontalScrollingOffset + 1,
            e.RowBounds.Height);

        // Paint the custom selection background.
        using (Brush backbrush =
            new System.Drawing.Drawing2D.LinearGradientBrush(rowBounds,
                this.dataGridView1.DefaultCellStyle.SelectionBackColor,
                e.InheritedRowStyle.ForeColor,
                System.Drawing.Drawing2D.LinearGradientMode.Horizontal))
        {
            e.Graphics.FillRectangle(backbrush, rowBounds);
        }
    }
}

.NET Framework
Available since 2.0
Return to top
Show: