• ベストアンサー

DataGridViewソート時に先頭行を固定する

C#のDataGridViewにて列名をクリックした際にソートが発生しますが、 その時、先頭行だけはソートの比較に参加させずに固定しておくことは可能ですか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hirotn
  • ベストアンサー率59% (147/246)
回答No.1

Column[index].HeaderTextを設定する方法ではなくて、セルの一行目を除外するのですよね? http://dobon.net/vb/dotnet/datagridview/customsort.html 上記URLのSortCompareイベントを使用する方法が利用できると思います。 ソートの条件で2行目から判断するよう手動で書かなければなりませんが…。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridviewsortcompareeventargs.sortresult.aspx によれば、 e.RowIndex1が0の時は常にマイナスの値 e.SortResult2が0の時は常にプラスの値をe.SortResultプロパティに格納すれば、常に一行目を先頭にできると考えます。 それ以外の場合は通常通りのソート条件を実装します。

rigard1225
質問者

お礼

ご回答ありがとうございます。 リンク先にてSortCompareイベントについて確認したところ、 DataSourceプロパティに何も設定していないことが条件とのことでした。 しかし残念ながらDataSourceを設定していますので、この方法では出来そうにありません。 せっかく、ご回答いただいたのにすみません。 ただ、このような方法は知らなかったので勉強になりました。 今後参考にさせて頂きます。

関連するQ&A

専門家に質問してみよう