1

私は、datagridview を使用してテキスト ファイルを読み込み、m 行 xn 列のテーブルを表示するビューアーを作成しています (テーブルはユーザーが編集可能です)。

このビューアの主な目的は、各列の最大値の背景色を赤に、各列の最小値を緑に、さらに特定のしきい値を超えるセルの背景色をピンクに変更することです。(ボタンを使用して checkMinMax() メソッドをトリガーします。このメソッドは dataTable の各列を反復処理して min/max/exceed の行のリストを抽出します)

データを最初にデータテーブルにロードするときにこれを行うことができます。ただし、datagridview を並べ替えて checkMinMax() を再度呼び出すと、色は古い位置に固定されたままになります。

public void setCellBackColor (List<int> rows, int col, Color color)
{
    foreach (int row in rows)
    { 
        dataGridView_data.Rows[row].Cells[col].Style.BackColor = color;  
    }
}

データグリッドビューのrowIdではなく、データテーブルのインデックスを使用していることを理解しています。私の質問は、データテーブルのインデックスをrowIdにマップする方法があるかどうかです?

または、私がやりたいことを行うためのより良い方法はありますか?

4

1 に答える 1

1

データを並べ替えた後、思い出してくださいsetCellBackColumn。行の強調表示は動的ではないため、思い出す必要があります。Sortedこれは、グリッドのイベントを使用して行うことができます。古い色を保持しないように、デフォルトの色を特に白に設定することを忘れないでください。

于 2012-04-09T02:32:38.307 に答える