DataGridView.SortCompare イベント
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

Dim instance As DataGridView Dim handler As DataGridViewSortCompareEventHandler AddHandler instance.SortCompare, handler
public: event DataGridViewSortCompareEventHandler^ SortCompare { void add (DataGridViewSortCompareEventHandler^ value); void remove (DataGridViewSortCompareEventHandler^ value); }

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

複数列の並べ替えにおける 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; }

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


DataGridView クラス
DataGridView メンバ
System.Windows.Forms 名前空間
DataGridViewSortCompareEventHandler
DataGridViewSortCompareEventArgs
OnSortCompare
DataGridViewColumn.SortMode
DataGridViewColumnHeaderCell.SortGlyphDirection
その他の技術情報
DataGridView コントロール (Windows フォーム)
方法 : Windows フォーム DataGridView コントロールの並べ替え機能をカスタマイズする
Weblioに収録されているすべての辞書からDataGridView.SortCompare イベントを検索する場合は、下記のリンクをクリックしてください。

- DataGridView.SortCompare イベントのページへのリンク