DataGridView.SortCompare Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o DataGridView compara dois valores de célula para executar uma operação de classificação.
public:
event System::Windows::Forms::DataGridViewSortCompareEventHandler ^ SortCompare;
public event System.Windows.Forms.DataGridViewSortCompareEventHandler SortCompare;
public event System.Windows.Forms.DataGridViewSortCompareEventHandler? SortCompare;
member this.SortCompare : System.Windows.Forms.DataGridViewSortCompareEventHandler
Public Custom Event SortCompare As DataGridViewSortCompareEventHandler
Tipo de evento
Exemplos
O exemplo de código a seguir demonstra como usar o SortCompare em uma classificação de várias colunas. Este exemplo faz parte de um exemplo maior fornecido em Como personalizar a classificação no controle Windows Forms DataGridView.
private void dataGridView1_SortCompare(object sender,
DataGridViewSortCompareEventArgs e)
{
// Try to sort based on the cells in the current column.
e.SortResult = System.String.Compare(
e.CellValue1.ToString(), e.CellValue2.ToString());
// If the cells are equal, sort based on the ID column.
if (e.SortResult == 0 && e.Column.Name != "ID")
{
e.SortResult = System.String.Compare(
dataGridView1.Rows[e.RowIndex1].Cells["ID"].Value.ToString(),
dataGridView1.Rows[e.RowIndex2].Cells["ID"].Value.ToString());
}
e.Handled = true;
}
Private Sub DataGridView1_SortCompare( _
ByVal sender As Object, ByVal e As DataGridViewSortCompareEventArgs) _
Handles DataGridView1.SortCompare
' Try to sort based on the contents of the cell in the current column.
e.SortResult = System.String.Compare(e.CellValue1.ToString(), _
e.CellValue2.ToString())
' If the cells are equal, sort based on the ID column.
If (e.SortResult = 0) AndAlso Not (e.Column.Name = "ID") Then
e.SortResult = System.String.Compare( _
DataGridView1.Rows(e.RowIndex1).Cells("ID").Value.ToString(), _
DataGridView1.Rows(e.RowIndex2).Cells("ID").Value.ToString())
End If
e.Handled = True
End Sub
Comentários
Esse evento ocorre somente quando a DataSource propriedade não está definida e o valor da VirtualMode propriedade é false
.
Esse evento compara pares de células na coluna que está sendo classificada. Ela ocorre somente quando o usuário clica no cabeçalho de uma coluna com um SortMode valor de propriedade igual Automatica ou quando você chama a Sort(DataGridViewColumn, ListSortDirection) sobrecarga. Quando esse evento ocorre para uma coluna com um SortMode valor de propriedade de Programmatic, você deve exibir o glifo de classificação por conta própria por meio da DataGridViewColumnHeaderCell.SortGlyphDirection propriedade .
Você pode usar esse evento para classificar linhas usando os valores de célula em uma coluna ou em várias colunas. Use as CellValue1 propriedades e CellValue2 para comparar valores de célula na coluna especificada na Column propriedade . Use as RowIndex1 propriedades e RowIndex2 para acessar valores em outras colunas por meio da Rows coleção.
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.