DataGridView.SortCompare Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica quando DataGridView confronta i valori di due celle per eseguire un'operazione di ordinamento.
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 evento
Esempio
Nell'esempio di codice seguente viene illustrato come usare in SortCompare un ordinamento a più colonne. Questo esempio fa parte di un esempio più ampio fornito in Procedura: Personalizzare l'ordinamento nel controllo DataGridView Windows Forms.
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
Commenti
Questo evento si verifica solo quando la DataSource proprietà non è impostata e il valore della VirtualMode proprietà è false
.
Questo evento confronta coppie di celle nella colonna ordinata. Si verifica solo quando l'utente fa clic sull'intestazione di una colonna con un SortMode valore della Automaticproprietà o quando si chiama l'overload Sort(DataGridViewColumn, ListSortDirection) . Quando questo evento si verifica per una colonna con un SortMode valore della proprietà , Programmaticè necessario visualizzare il glifo di ordinamento tramite la DataGridViewColumnHeaderCell.SortGlyphDirection proprietà .
È possibile usare questo evento per ordinare le righe usando i valori delle celle in una colonna o in più colonne. Utilizzare le CellValue1 proprietà e CellValue2 per confrontare i valori delle celle nella colonna specificata nella Column proprietà . Utilizzare le RowIndex1 proprietà e RowIndex2 per accedere ai valori in altre colonne tramite l'insieme Rows .
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.