FarPoint.Win.SpreadJ アセンブリ > FarPoint.Win.Spread 名前空間 > SheetView クラス : GetPreferredRowHeight メソッド |
オーバーロード | 説明 |
---|---|
GetPreferredRowHeight(Int32) | このシートの指定した行にある最も高さのあるセル(テキスト内容に基づく)の高さ(ピクセル単位)を取得します。 |
GetPreferredRowHeight(Int32,Boolean) | このシートの指定した行にある最も高さのあるセル(テキスト内容に基づく)の高さ(ピクセル単位)を取得します。 |
GetPreferredRowHeight(Int32,Boolean,Boolean) | このシートの指定した行にある最も高さのあるセル(テキスト内容に基づく)の高さ(ピクセル単位)を取得します。 |
このメソッドまたは Row.GetPreferredHeight メソッドを使用することで、行の高さをセルのデータに基づいて設定できます。詳細については、「データに合わせたサイズ」を参照してください。
これらのメソッドは、行の最適な高さを、行に含まれるデータに基づいて取得します。行の各セルをループ処理してスタイル モデル内のセルの複合 StyleInfo.Renderer の、IRenderer インタフェースの GetPreferredSize メソッドを呼び出し、最大値を取得します。
セルのテキストを複数行に折り返すよう設定している場合(GeneralCellType の WordWrapが True であるか、TextCellType の Multiline または WordWrap あるいはその両方が True の場合)、GetPreferredSize メソッドは、セル内のすべてのテキストを表示するのに最適な高さを、現在の行の高さで返します。テキスト型セルまたはテキストを含むヘッダ セルの場合は、テキスト型セルまたはヘッダ セルの WordWrap プロパティを False に設定して、ワード ラップを必ず無効にしてください。
行数が非常に多い場合は、最適な高さを取得するために、SheetView.DocumentModels.RowAxis 用のカスタム アクシス モデルを作成できます。この場合は、DefaultSheetAxisModel から派生したクラスを作成し、そのコンストラクタで SheetView への参照を取得してフィールドに格納します。さらに、行インデックスに対してこのメソッドを呼び出すように GetSize メソッドをオーバーライドすることが必要です。
言い換えると、これらのメソッドは各セルをループ処理して各セルの複合スタイルのレンダラの GetPreferredSize を呼び出し、行のすべてのセルの最大の高さを取得します。複数行テキストと単一行テキストの処理方法の詳細については、GetPreferredSize を参照してください。
複合スタイルの動作の詳細については、ISheetStyleModel.GetCompositeInfo を参照してください。
リッチ テキスト型セル(RichTextCellType)では、WordWrap プロパティが True に設定されている場合、折り返された行の最後の文字が境界線上にあるときに、GetPreferredRowHeight によって返される行の高さがセル全体の表示に必要な高さより大きくなることがあります。また、Multiline プロパティが True に設定されている場合、各行に複数のフォント サイズとスタイルがあるときに、GetPreferredRowHeight によって返される行の高さがセル全体の表示に必要な高さより小さくなることがあります。