このパラメータは、セルの内容に基づく動的な書式設定を提供するためによく使用されます。たとえば、セルの値が特定の範囲に入っていない場合に、イベントハンドラで、このパラメータに新しいスタイルを割り当てることができます。
このイベント内で CellStyleパラメータのメンバを変更する操作は不正ではありませんが、このスタイルを使用している他のセルにも変更の影響が及ぶため、お勧めしません。
次のコードは、 OwnerDrawCellイベントを使用して、低い在庫レベルを示すセルを強調表示します。
' 在庫レベルが低い項目の表示に使用するスタイルを作成します。 Dim cs As CellStyle = flex.Styles.Add("Critical") cs.BackColor = Color.Red Private Sub flex_OwnerDrawCell(・・・ ' 固定セルを無視します。 If e.Row < flex.Rows.Fixed Or e.Col < flex.Cols.Fixed Then Return End If ' 追加注文レベルが基準を上回る場合にカスタムスタイルを適用します。 If flex.Cols(e.Col).Name = "UnitsInStock" Then ' Style パラメータに Critical スタイルを適用してスタイルを変更します。 ' (e.Style.BackColor プロパティを直接変更しないでください。直接変更すると、 ' このスタイルを使用する他のセルに影響します)。 If CShort(flex(e.Row, "UnitsInStock")) < CShort(flex(e.Row, "ReorderLevel")) Then e.Style = flex.Styles("Critical") End If End If End Sub
// 在庫レベルが低い項目の表示に使用するスタイルを作成します CellStyle cs = flex.Styles.Add("Critical"); cs.BackColor = Color.Red; private void flex_OwnerDrawCell(・・・ { // 固定セルを無視します。 if (e.Row < flex.Rows.Fixed || e.Col < flex.Cols.Fixed) return; // 追加注文レベルが基準を上回る場合にカスタムスタイルを適用します。 if (flex.Cols[e.Col].Name == "UnitsInStock") { // Style パラメータに Critical スタイルを適用してスタイルを変更します。 // (e.Style.BackColor プロパティを直接変更しないでください。直接変更すると、 // このスタイルを使用する他のセルに影響します)。 if ((short)flex[e.Row, "UnitsInStock"] < (short)flex[e.Row, "ReorderLevel"]) e.Style = flex.Styles["Critical"]; } }