
DataGridViewCellStyle オブジェクトの使用
DataGridViewCellStyle オブジェクトは、DataGridView、DataGridViewColumn、DataGridViewRow、DataGridViewCell の各クラス、およびその派生クラスのさまざまなプロパティから取得できます。これらのプロパティのいずれかが設定されていない場合、その値を取得すると、新しい DataGridViewCellStyle オブジェクトが作成されます。独自に作成した DataGridViewCellStyle オブジェクトをインスタンス化して、これらのプロパティを割り当てることもできます。
複数の DataGridView 要素間で DataGridViewCellStyle オブジェクトを共有すると、スタイル情報の不要な重複を避けることができます。また、コントロール レベル、列レベル、および行レベルで設定されたスタイルは、各レベルからセル レベルまで、下方向にフィルタ処理されるため、上位のレベルとは異なるスタイル プロパティだけを各レベルで設定することによってスタイルの重複を避けることもできます。これについては、後の「スタイルの継承」セクションで詳しく説明します。
DataGridViewCellStyle オブジェクトを取得または設定する主要なプロパティを次の表に示します。
前述のように、スタイル プロパティがまだ設定されていない場合にスタイル プロパティの値を取得すると、新しい DataGridViewCellStyle オブジェクトのインスタンスが自動的に生成されます。不要なオブジェクトが作成されないようにするため、行クラスや列クラスには、DefaultCellStyle プロパティが設定されているかどうかを確認するためにチェックできる HasDefaultCellStyle プロパティが用意されています。同様に、セル クラスには、Style プロパティが設定されているかどうかを示す HasStyle プロパティがあります。
各スタイル プロパティには、対応する DataGridView コントロールの PropertyNameChanged イベントがあります。行、列、およびセルのプロパティの場合、イベント名は "Row"、"Column"、または "Cell" で始まります (たとえば、RowDefaultCellStyleChanged)。これらの各イベントは、対応するスタイル プロパティが異なる DataGridViewCellStyle オブジェクトに設定されているときに発生します。これらのイベントは、スタイル プロパティから DataGridViewCellStyle オブジェクトを取得してプロパティ値を変更したときには発生しません。セル スタイル オブジェクト自体に対する変更に対応するには、CellStyleContentChanged イベントを処理します。