コード上からコントロールの位置を動的に変更する方法は?
対象製品
ActiveReports for .NET 3.0J Standard Edition
詳細
コントロールの位置は、Locationプロパティで設定が可能です。
ただし、Locationプロパティは値型ですので、たとえばLocation.Xの内容を直接変更しようとした場合、「Expression は値であるため、代入式のターゲットにすることはできません。」というエラーが発生します。
Locationプロパティを動的に変更する場合は、Locationプロパティのデータ型であるSystem.Drawing.PointFクラスのインスタンスを新たに生成し、それをLocationプロパティにセットしてください。
◆サンプルコード(VB.NET)
◆サンプルコード(C#)
※なお、コントロールを操作できるのは、そのコントロールが配置されているセクションのイベント(Format、BeforePrint、AfterPrint)内のみです。
ただし、Locationプロパティは値型ですので、たとえばLocation.Xの内容を直接変更しようとした場合、「Expression は値であるため、代入式のターゲットにすることはできません。」というエラーが発生します。
Locationプロパティを動的に変更する場合は、Locationプロパティのデータ型であるSystem.Drawing.PointFクラスのインスタンスを新たに生成し、それをLocationプロパティにセットしてください。
◆サンプルコード(VB.NET)
Private Sub Detail_Format(...)
' (2, 1.5)センチの位置に移動します。
TextBox1.Location = _
New System.Drawing.PointF(Me.CmToInch(2), Me.CmToInch(1.5))
End Sub
' (2, 1.5)センチの位置に移動します。
TextBox1.Location = _
New System.Drawing.PointF(Me.CmToInch(2), Me.CmToInch(1.5))
End Sub
◆サンプルコード(C#)
private void Detail_Format(...)
{
// (2, 1.5)センチの位置に移動します。
TextBox1.Location
= new System.Drawing.PointF(ActiveReport.CmToInch(2f),
ActiveReport.CmToInch(1.5f));
}
{
// (2, 1.5)センチの位置に移動します。
TextBox1.Location
= new System.Drawing.PointF(ActiveReport.CmToInch(2f),
ActiveReport.CmToInch(1.5f));
}
※なお、コントロールを操作できるのは、そのコントロールが配置されているセクションのイベント(Format、BeforePrint、AfterPrint)内のみです。
関連情報
キーワード
デザイン・レイアウト
この文書は、以前は次のFAQ IDで公開されていました : 10375