2

別のセルの値またはイベントに応じて、特定のセルの前景色と背景色を動的に変更したいと考えています。

たとえば、ユーザーがセルをクリックすると、その背景色は赤になります。

私のコードはこれです:

Janus.Windows.GridEX.GridEXFormatStyle style1 = new GridEX.FormatStyle();

style1.ForeColor = Color.Red;

mySpecificCell.FormatStyle = style1;

動作しますが、下にスクロールしてからもう一度上にスクロールすると、セルの色が元の色に戻ります。

私のコードの問題は何ですか? これをどのように克服すればよいですか?

4

2 に答える 2

4

Arthur が言ったように、グリッドの FormattingRow イベントを利用する必要があります。

これはサンプルコードです:

private void grd_FormattingRow(object sender, RowLoadEventArgs e)
{
    if (e.Row.Cells["ColumnName"].Value == someValue) // a condition to determine when to change the color of the cell, you can put your own condition
        e.Row.Cells["ColumnName"].FormatStyle = new GridEXFormatStyle() { BackColor = Color.Red };

}

Formatting Row は、表示されているグリッドの各行に対して発生し、e.Row を使用してこの行にアクセスできます。

「ColumnName」は列の名前です。

セルの色を変えたいときにocheckする条件を入れ替えることができます。

于 2014-04-15T04:02:24.187 に答える
2

Gridex のformattingRow イベントを使用して、カスタマイズした書式設定を行ってみてください。

このイベントは、グリッドのすべての行に対して呼び出されます。

そこでは、行全体にアクセスできます。

つまり、あるセルの値を確認してから、最初のセルに基づいて別のセルをフォーマットできます。

于 2014-04-14T12:59:45.810 に答える