PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル型 > セル型の概要 |
セル型は、ユーザーによるセルへのデータの入力、データの解釈、データの表示を処理します。それぞれのセル型に、エディタ(セルでのデータ入力を処理)、フォーマッタ(データの解釈方法を処理)、レンダラ(セル内のデータ表示を処理)が定義されています。
セル型は、個々のセル、セル範囲、列、行、またはシート全体に対して指定できます。 セル型には、そのセル型固有のプロパティがあります。 セル型を使用するには、セル型を定義し、必要なプロパティを設定し、セルに割り当てます。
セル型を処理する場合は、データ型に注意してください。コンボボックス型(ComboBoxCellType)、日付時刻型(DateTimeCellType)、マルチオプション型(MultipleOptionCellType)などのいくつかのセル型は、EditorValueプロパティを備えています。セルで設定するValueプロパティの値は、EditorValueプロパティによって指定するデータ型と一致するようにしてください。
セル型は、エディタ、レンダラ、およびフォーマッタで構成されます。以下、それぞれの役割です。
セル型の要素 | 役割 |
---|---|
エディタ | セルの編集コントロールの作成、および管理。セルが編集モードに切り替わったときに編集用のコントロールを作成し、セルの位置に配置します。 |
フォーマッタ | セルの値からテキストへの、あるいはテキストからセルの値への変換(セルのTextプロパティを取得、または設定するときなど)。 |
レンダラ | セルが編集モード以外の状態でのセルの描画。エディタが存在しない場合、またはセルが編集モードではない場合に、セル領域内のコントロールを描画します。 |
ほとんどの場合、セルが編集モードかどうかに関わらず、セルの外観は統一したほうが好ましいです。 そのためには、1つのセル型を作成し、これを各セルのCellTypeプロパティに割り当てます。これにより、この1つのセル型がセルのエディタ、レンダラ、およびフォーマッタとして使用されます。編集モードかそうでないかによってセルの外観を変えるには、2つのセル型を作成し、1つをセルのエディタに、もう1つをセルのレンダラに割り当てます。 また、このどちらかのセル型を、セルのフォーマッタとして割り当てることもできます。詳細については、ICellTypeインタフェースを参照してください。
セルを編集できるようにするには、セル型がエディタコントロールを返し、このコントロールがセル上に表示されるようにする必要があります。エディタコントロールには、テキストベースのもの(テキストボックスなど)とグラフィックベースのもの(チェックボックスなど)があります。また、ドロップダウンリスト型のもの(コンボボックスなど)や、ポップアップダイアログ型のもの(日付選択ダイアログなど)もあります。 EditBaseCellTypeクラスは、組み込みのテキストベースのセル型(標準型、テキスト型、数値型、日付時刻型など)の派生元となるクラスです。このクラスは、テキストベースのカスタムセル型を派生させるためにも使用します。 ISubEditorインタフェースは、テキストベースエディタをドロップダウンリスト(コンボボックスなど)またはポップアップダイアログ(日付選択ダイアログなど)と組み合わせるために使用します。データモデルは、色を含むあらゆる値を保持することができます。セル型には常に、データモデルからの未加工の値が渡されます。
セル型を行ヘッダまたは列ヘッダ内のセルに割り当てることもできますが、この場合のセル型は表示目的のみに使用されます。つまり、表示のみが可能であり、編集できません。セル内の編集は、データ領域のセルだけに限られます。編集可能で、かつヘッダの役割を果たす領域を作成するには、列ヘッダを非表示(無効)にして、スプレッドシートの先頭行を固定してから、この固定行を疑似ヘッダとして使用します。