5

C# Windows Formsでラベルを反転/回転するにはどうすればよいですか?

背景画像をラベルに設定しました。

時間間隔ごとに、右側に 3 ピクセル移動します。フォームの終了位置に到達したら、ラベルを裏返して裏返す必要があります。

以下の方法を試しましたが、解決できませんでした。

private void timer1_Tick(object sender, EventArgs e){

    if (label2.Location.X < this.Width)
        label2.Location = new Point(label2.Location.X + incr, label2.Location.Y);
    else
    {
        incr = -2;
        label2.Location = new Point(label2.Location.X - 50, label2.Location.Y);
        label1.Image.RotateFlip();
    }
    this.Refresh();
}
4

2 に答える 2

9

newlabelユーザーが指定した任意の角度でテキストを回転できるクラス、を作成します。

extend label class& override paint method

コードで使用するか、ツールボックスからドラッグするだけで使用できます。

using System.Drawing;

class newLabel : System.Windows.Forms.Label
{
    public int RotateAngle { get; set; }  
    public string NewText { get; set; }   
    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
        Brush b =new SolidBrush(this.ForeColor);           
        e.Graphics.TranslateTransform(this.Width / 2, this.Height / 2);
        e.Graphics.RotateTransform(this.RotateAngle);
        e.Graphics.DrawString(this.NewText, this.Font,b , 0f, 0f);
        base.OnPaint(e);
    }
}

次に、このカスタムコントロールをドラッグして、フォームに使用します。

以下のプロパティを設定する必要があります。

newlbl.Text = "";           
newlbl.AutoSize = false;      
newlbl.NewText = "ravindra";     
newlbl.ForeColor = Color.Green;  
newlbl.RotateAngle = -90; 

プロパティを変更するだけで、必要に応じて角度を変更できRotateAngleます。

于 2012-09-26T12:36:52.717 に答える