2016-08-22 9 views
0

私はデスクトップアプリケーションを持っていて、私はフォーム上でDataGridViewを使用しています。私は最初の行を凍らせた。しかし、DataGridViewで列のヘッダーをクリックしたときに、最初の行の場所も変更されています。私が最初の行を無視する方法をソートする。DataGridViewで並べ替えの列のヘッダーをクリックしたときに、最初の行をフリーズする方法はありますか?

答えて

0

あなたが求めているのは、DataGridViewの一部だけをソートできることです。私の知る限り、これを行う簡単で標準的な方法はありません.Filipのこの質問への回答:Sorting selected rows in DataGridView。これは、あなたが望む行動を達成することが不可能であるということを意味するものではありません。

フィリップは実装を提供しています。このquestionの中でJustinは少し修正する必要があるが、あなたのニーズに合ったコードを提供しています。問題は、DataGridViewで行を上下に移動する方法を尋ねますが、ソート後に静的に保つ行をすべて最上部に移動するように実装を変更できると思います。並べ替える行の量に応じて、最初の行が消えて再び表示されることがあります。しかし、あなたのデータセットが比較的小さい場合、最初の行の短いフラッシュが何らかのランダムな位置にソートされた後、先頭に追加されて大きな問題が発生するとは想像もしません。 DataGridViewSortCompareイベントのSortCompareイベントハンドラ内

0

、これを試してみてください。

private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) 
{ 
    if (e.RowIndex1 == 0) 
    { 
     e.Handled = true; 
    } 
    else 
    { 
     e.Handled = false; 
    } 
} 
+0

私は前に試してみました。うまくいきませんでした。 – mstfcck

関連する問題