DataGridViewSortCompareEventArgs クラス
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


SortCompare イベントを処理すると、カスタムの並べ替えを実行できます。このイベントは、DataGridView.DataSource プロパティが設定されておらず、DataGridView.VirtualMode プロパティが false に設定されている場合のみ発生します。このイベントは、並べ替え対象の列に含まれるセルのペアごとに 1 回発生します。このイベントが発生するのは、DataGridViewColumn.SortMode プロパティの値が Automatic に設定されている列ヘッダーをユーザーがクリックしたときと、DataGridView.Sort(DataGridViewColumn,ListSortDirection) のオーバーロードが呼び出されたときのみです。DataGridViewColumn.SortMode プロパティの値が Programmatic に設定されている列にこのイベントを発生させるときは、DataGridViewColumnHeaderCell.SortGlyphDirection プロパティを使用して並べ替えグリフを表示する必要があります。
このイベントを使用すると、1 つまたは複数の列のセル値を使用して、行を並べ替えることができます。CellValue1 プロパティと CellValue2 プロパティを使用すると、Column プロパティで指定した列に含まれるセル値を比較できます。RowIndex1 プロパティと RowIndex2 プロパティを使用すると、DataGridView.Rows コレクションを通じて他の列の値を調べることができます。

次のコード例では、複数列の並べ替えで SortCompare を使用する方法を示します。この例は 方法 : Windows フォーム DataGridView コントロールの並べ替え機能をカスタマイズする の例の一部です。
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
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; }

System.EventArgs
System.ComponentModel.HandledEventArgs
System.Windows.Forms.DataGridViewSortCompareEventArgs


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataGridViewSortCompareEventArgs メンバ
System.Windows.Forms 名前空間
DataGridView クラス
DataGridView.SortCompare イベント
DataGridView.OnSortCompare
DataGridView.Rows プロパティ
DataGridViewSortCompareEventHandler
DataGridViewColumn.SortMode プロパティ
DataGridViewColumnHeaderCell.SortGlyphDirection プロパティ
CellValue1
CellValue2
Column
RowIndex1
RowIndex2
その他の技術情報
方法 : Windows フォーム DataGridView コントロールの並べ替え機能をカスタマイズする
- DataGridViewSortCompareEventArgs クラスのページへのリンク