DataGridViewColumnCollection.GetColumnsWidth Metodo

Definizione

Restituisce la larghezza, in pixel, necessaria per visualizzare tutte le colonne che soddisfano i requisiti di filtro specificati.

public:
 int GetColumnsWidth(System::Windows::Forms::DataGridViewElementStates includeFilter);
public int GetColumnsWidth(System.Windows.Forms.DataGridViewElementStates includeFilter);
member this.GetColumnsWidth : System.Windows.Forms.DataGridViewElementStates -> int
Public Function GetColumnsWidth (includeFilter As DataGridViewElementStates) As Integer

Parametri

includeFilter
DataGridViewElementStates

Combinazione bit per bit dei DataGridViewElementStates valori che rappresentano il filtro per l'inclusione.

Valori restituiti

Larghezza, in pixel, necessaria per visualizzare tutte le colonne che soddisfano i requisiti di filtro.

Eccezioni

includeFilter non è una combinazione bit per bit valida di DataGridViewElementStates valori.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di questo metodo. Questo esempio fa parte di un esempio più ampio disponibile in Procedura: Personalizzare l'aspetto delle righe nel controllo DataGridView di Windows Form.

// 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);
        }
    }
}
' Paints the custom selection background for selected rows.
Sub dataGridView1_RowPrePaint(ByVal sender As Object, _
    ByVal e As DataGridViewRowPrePaintEventArgs) _
    Handles dataGridView1.RowPrePaint

    ' Do not automatically paint the focus rectangle.
    e.PaintParts = e.PaintParts And Not DataGridViewPaintParts.Focus

    ' Determine whether the cell should be painted with the 
    ' custom selection background.
    If (e.State And DataGridViewElementStates.Selected) = _
        DataGridViewElementStates.Selected Then

        ' Calculate the bounds of the row.
        Dim rowBounds As New Rectangle( _
            Me.dataGridView1.RowHeadersWidth, e.RowBounds.Top, _
            Me.dataGridView1.Columns.GetColumnsWidth( _
            DataGridViewElementStates.Visible) - _
            Me.dataGridView1.HorizontalScrollingOffset + 1, _
            e.RowBounds.Height)

        ' Paint the custom selection background.
        Dim backbrush As New _
            System.Drawing.Drawing2D.LinearGradientBrush(rowBounds, _
            Me.dataGridView1.DefaultCellStyle.SelectionBackColor, _
            e.InheritedRowStyle.ForeColor, _
            System.Drawing.Drawing2D.LinearGradientMode.Horizontal)
        Try
            e.Graphics.FillRectangle(backbrush, rowBounds)
        Finally
            backbrush.Dispose()
        End Try
    End If

End Sub

Si applica a

Vedi anche