CanGrow/CanShrinkプロパティによりコントロールの高さが調整されますが、その他のコントロールの高さを、調整後の高さに合わせる方法は?

文書番号 : 33896     文書種別 : 使用方法     登録日 : 2012/12/19     最終更新日 : 2013/01/07
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
詳細
セクションレポートには、出力内容にあわせてコントロールやセクションの高さを自動的に調整する機能としてCanGrow・CanShrinkプロパティが用意されています。

これらのプロパティによる高さの自動調整は、BeforePrintイベント発生前(Formatイベント終了後)に完了します。したがって、BeforePrintイベント内で、高さが調整されたコントロールやセクションに合わせて、他のコントロールの高さを変更すれば、それぞれの高さを合わせることが可能です。

下記のコードでは、Detailセクション上のTextBox1~TextBox4の高さを、最も高く伸長したコントロールの高さに合わせて調整しています。

◆サンプルコード(VB.NET)
Private Sub Detail_BeforePrint(...) Handles Detail.BeforePrint
  Dim h As Single = Me.TextBox1.Height
  Dim i As Integer
  For i = 2 To 4
    ' TextBox の最大の高さを求めます。
    If h < Me.Detail.Controls("TextBox" + i.ToString()).Height Then
      h = Me.Detail.Controls("TextBox" + i.ToString()).Height
    End If
  Next i

  For i = 1 To 4
    ' 全ての TextBox の高さを最大値に統一します。
    Me.Detail.Controls("TextBox" + i.ToString()).Height = h
  Next i
End Sub

◆サンプルコード(C#)
private void detail_BeforePrint(object sender, EventArgs e)
{
  float h = this.textBox1.Height;
  int i;
  for (i = 2; i <= 4; i++)
  {
    //TextBox の最大の高さを求めます。
    if (h < this.detail.Controls["textBox" + i.ToString()].Height)
    {
      h = this.detail.Controls["textBox" + i.ToString()].Height;
    }
  }

  for (i = 1; i <= 4; i++)
  {
    //全ての TextBox の高さを最大値に統一します。
    this.detail.Controls["textBox" + i.ToString()].Height = h;
  }
}
関連情報
キーワード
HowTo デザイン・レイアウト