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