Reports for WinForms
角度を付けたテキストの描画

テキストを角度を付けて描画するには、Graphics オブジェクトを使用して、テキストを回転するためのサブルーチンを作成します。

  1. ツールボックスからプロジェクトに C1PrintPreviewControl およびC1PrintDocumentコントロールを追加します。
  2. C1PrintPreviewControl1 をクリックして選択し、プロパティウィンドウでその Document プロパティを C1PrintDocument1 に設定します。
  3. Form_Load イベントに次のコードを追加します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Me.C1PrintDocument1.StartDoc()    
    Me.C1PrintDocument1.RenderBlockGraphicsBegin()
    
    ' グラフィックオブジェクトを宣言します。    
    Dim g As System.Drawing.Graphics    
    g = Me.C1PrintDocument1.CurrentBlockGraphics   
    
    Dim fontb = New Font("Arial", 12, FontStyle.Bold)
    
    ' テキストの角度を変更するサブルーチン。    
    RotateText(g, fontb, "Hello World", -45, Brushes.CadetBlue, 10, 100)
    
    Me.C1PrintDocument1.RenderBlockGraphicsEnd()    
    Me.C1PrintDocument1.EndDoc()
    

    C# コードの書き方

    C#
    コードのコピー
    this.c1PrintDocument1.StartDoc();    
    this.c1PrintDocument1.RenderBlockGraphicsBegin(); 
     
    //グラフィックオブジェクトを宣言します。    
    System.Drawing.Graphics g;    
    g = this.c1PrintDocument1.CurrentBlockGraphics; 
    
    Font fontb = new Font("Arial", 12, FontStyle.Bold);
    
    // テキストの角度を変更するサブルーチン。    
    RotateText(g, fontb, "Hello World", -45, Brushes.CadetBlue, 10, 100);
    
    this.c1PrintDocument1.RenderBlockGraphicsEnd();    
    this.c1PrintDocument1.EndDoc();
    
  4. RotateText サブルーチンを追加します。これは、角度を付けてテキストを描画します。

    Visual Basic コードの書き方

    Visual Basic
    コードのコピー
    Public Sub RotateText(ByVal g As Graphics, ByVal f As Font, ByVal s As String, ByVal angle As Single, ByVal b As Brush, ByVal x As Single, ByVal y As Single)    
        If angle > 360 Then    
            While angle > 360    
                angle = angle - 360    
            End While    
        ElseIf angle < 0 Then    
            While angle < 0    
                angle = angle + 360    
            End While    
        End If
    
        ' マトリックスを作成し、n 度回転します。    
        Dim myMatrix As New System.Drawing.Drawing2D.Matrix    
        myMatrix.Rotate(angle, Drawing2D.MatrixOrder.Append)
    
        ' 変換の適用後のテキストを画面に描画します。    
        g.Transform = myMatrix    
        g.DrawString(s, f, b, x, y)    
    End Sub
    

    C# コードの書き方

    C#
    コードのコピー
    public void RotateText(Graphics g, Font f, string s, Single angle, Brush b, Single x, Single y)    
    {    
        if (angle > 360)    
        {    
            while (angle > 360)    
            {    
                angle = angle - 360;    
            }    
        }    
        else if (angle < 0)    
        {    
            while (angle < 0)    
            {    
                angle = angle + 360;    
            }    
        }
    
        // マトリックスを作成し、n 度回転します。    
        System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix();    
        myMatrix.Rotate(angle, System.Drawing.Drawing2D.MatrixOrder.Append);
    
        // 変換の適用後のテキストを画面に描画します。    
        g.Transform = myMatrix;    
        g.DrawString(s, f, b, x, y);    
    }
    

このトピックの作業結果

テキストが 45 度の角度で表示されます。