ReportViewer for ASP.NET Web Forms
テーブルと列の幅、行の高さ
C1PrintDocument の使い方 > テーブル > テーブルと列の幅、行の高さ

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つの処理を行う必要があります。

以下に変更されたコードを示します。

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);

変更されたコードは、テーブルの各列の幅を、セル内のすべてのテキストに対応する必要がある限度に設定します。