DataGridView.ColumnHeaderMouseClick Evento

Definição

Ocorre quando o usuário clica no cabeçalho de uma coluna.

public event System.Windows.Forms.DataGridViewCellMouseEventHandler ColumnHeaderMouseClick;
public event System.Windows.Forms.DataGridViewCellMouseEventHandler? ColumnHeaderMouseClick;

Tipo de evento

Exemplos

Quando um título de coluna é clicado em um DataGridView, o comportamento padrão é ordenar as linhas de grade com base na coluna clicada ou reverter a ordem de classificação se a grade já estiver classificada pela coluna clicada. O exemplo de código a seguir demonstra como usar esse evento para executar uma classificação programática que emula o comportamento padrão de clicar em um DataGridViewColumnHeaderCell quando o comportamento padrão tiver sido desabilitado. Neste exemplo, o SelectionMode é definido ColumnHeaderSelectcomo , portanto, clicar no DataGridViewColumnHeaderCell seleciona o conteúdo da coluna. Para que o código de exemplo funcione conforme o esperado, o comportamento de clique do cabeçalho de coluna padrão precisa ser alterado sempre que os dados são carregados no DataGridView. Adicione um DataBindingComplete manipulador de eventos para fornecer o código que altera o comportamento padrão. Para executar este exemplo, cole o código em um formulário que contenha um DataGridView nomeado dataGridView1 e verifique se todos os eventos estão associados aos manipuladores de eventos.

private void dataGridView1_ColumnHeaderMouseClick(
    object sender, DataGridViewCellMouseEventArgs e)
{
    DataGridViewColumn newColumn = dataGridView1.Columns[e.ColumnIndex];
    DataGridViewColumn oldColumn = dataGridView1.SortedColumn;
    ListSortDirection direction;

    // If oldColumn is null, then the DataGridView is not sorted.
    if (oldColumn != null)
    {
        // Sort the same column again, reversing the SortOrder.
        if (oldColumn == newColumn &&
            dataGridView1.SortOrder == SortOrder.Ascending)
        {
            direction = ListSortDirection.Descending;
        }
        else
        {
            // Sort a new column and remove the old SortGlyph.
            direction = ListSortDirection.Ascending;
            oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
        }
    }
    else
    {
        direction = ListSortDirection.Ascending;
    }

    // Sort the selected column.
    dataGridView1.Sort(newColumn, direction);
    newColumn.HeaderCell.SortGlyphDirection =
        direction == ListSortDirection.Ascending ?
        SortOrder.Ascending : SortOrder.Descending;
}

private void dataGridView1_DataBindingComplete(object sender,
    DataGridViewBindingCompleteEventArgs e)
{
    // Put each of the columns into programmatic sort mode.
    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
        column.SortMode = DataGridViewColumnSortMode.Programmatic;
    }
}

Comentários

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.

Aplica-se a

Produto Versões
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Confira também