UltraGrid でセルの値に応じて行全体の色を変えてみましょう。完成イメージはこんな感じになります。
手順
InitializeRow イベント内でセルの値に応じた配色を行ってください。Appearance のプロパティに直接値を指定するとメモリの消費量が上がってしまうので、InitializeLayout イベントで必要な Appearance オブジェクトをあらかじめ作成しておくのをおすすめします。
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { // 背景色をピンク色にする Appearance と白にする Appearance を作成しておきます。 Infragistics.Win.Appearance pinkAppearance = e.Layout.Appearances.Add("myPinkAppearance"); pinkAppearance.BackColor = Color.Pink; Infragistics.Win.Appearance whiteAppearance = e.Layout.Appearances.Add("myWhiteAppearance"); whiteAppearance.BackColor = Color.White; } private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { // "StockedAmount" 列の値が20未満の場合は、ピンク色の背景色を付ける。 if((int)e.Row.Cells["StockedAmount"].Value < 20) { e.Row.Appearance = e.Row.Band.Layout.Appearances["myPinkAppearance"]; } // "StockedAmount" 列の値が20未満ではない場合は、白の背景色を付ける。 else { e.Row.Appearance = e.Row.Band.Layout.Appearances["myWhiteAppearance"]; } }
ヘルプおよびAPIリファレンス
- 「外観の作成と適用」
- 「WinGrid セルの外観変更」
- https://jp.infragistics.com/help/winforms/wingrid-changing-the-appearance-of-wingrid-cells
- ※コードサンプルはInitializeLayoutを使用していますが、InitializeRowでも可能です。
- 「InitializeRow イベント (UltraGrid)」
- 「メモリの使用」
サンプル