C1PrintDocumentテーブルの行と列のいずれもサイズが自動調整されますが、デフォルトの動作は行と列で異なります。デフォルトでは、行の高さは自動調整されますが(行内のセルのコンテンツに基づいて計算されます)、列の幅は固定されます。RenderTable のデフォルトの幅は、その親の幅と同じであり、その幅はすべての列で均等に共有されます。次のコードは、同じ幅の3列、セルのコンテンツの高さに自動調整された高さの 10 行を含む、ページ全体にわたるテーブルを作成します。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Dim rt As New C1.C1Preview.RenderTable() rt.Style.GridLines.All = LineDef.Default Dim row As Integer = 0 Do While (row < 10) Dim col As Integer = 0 Do While (col < 3) rt.Cells(row, col).Text = String.Format( _ "Cell({0},{1})", row, col) col += 1 Loop row += 1 Loop doc.Body.Children.Add(rt) |
C#コードの書き方
C# |
コードのコピー
|
---|---|
RenderTable rt = new RenderTable(); rt.Style.GridLines.All = LineDef.Default; for (int row = 0; row < 10; ++row) for (int col = 0; col < 3; ++col) rt.Cells[row, col].Text = string.Format( "Cell({0}, {1})", row, col); doc.Body.Children.Add(rt); |
サイズが完全に自動調整されるテーブルを作成するには、デフォルト設定に比べて、次の2つの処理を行う必要があります。
テーブル全体の幅を Auto に設定する必要があります(文字列をautoに設定するか、スタティックフィールドを Unit.Auto に設定します)。
および
テーブルの RenderTable.ColumnSizingMode を TableSizingModeEnum.Auto に設定する必要があります。
以下に変更されたコードを示します。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Dim rt As New C1.C1Preview.RenderTable() rt.Style.GridLines.All = LineDef.Default Dim row As Integer = 0 Do While (row < 10) Dim col As Integer = 0 Do While (col < 3) rt.Cells(row, col).Text = String.Format( _ "Cell({0},{1})", row, col) col += 1 Loop row += 1 Loop rt.Width = Unit.Auto rt.ColumnSizingMode = TableSizingModeEnum.Auto doc.Body.Children.Add(rt) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
RenderTable rt = new RenderTable(); rt.Style.GridLines.All = LineDef.Default; for (int row = 0; row < 10; ++row) for (int col = 0; col < 3; ++col) rt.Cells[row, col].Text = string.Format( "Cell({0}, {1})", row, col); rt.Width = Unit.Auto; rt.ColumnSizingMode = TableSizingModeEnum.Auto; doc.Body.Children.Add(rt); |
変更されたコードは、テーブルの各列の幅を、セル内のすべてのテキストに対応する必要がある限度に設定します。