CanGrow/CanShrinkプロパティによりコントロールの高さが調整されますが、その他のコントロールの高さを、調整後の高さに合わせる方法は?
対象製品
ActiveReports for .NET 9.0J
詳細
セクションレポートには、出力内容にあわせてコントロールやセクションの高さを自動的に調整する機能としてCanGrow・CanShrinkプロパティが用意されています。
これらのプロパティによる高さの自動調整は、BeforePrintイベント発生前(Formatイベント終了後)に完了します。したがって、BeforePrintイベント内で、高さが調整されたコントロールやセクションに合わせて、他のコントロールの高さを変更すれば、それぞれの高さを合わせることが可能です。
下記のコードでは、Detailセクション上のTextBox1~TextBox4の高さを、最も高く伸長したコントロールの高さに合わせて調整しています。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
これらのプロパティによる高さの自動調整は、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
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;
}
}
{
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 デザイン・レイアウト