c#中如何实现label5控件旋转90度?
时间: 2024-02-26 19:58:09 浏览: 413
在 C# 中,可以通过使用 System.Windows.Forms.Label 控件的 Transform 属性来实现旋转 Label 的效果。以下是一个简单的示例代码:
```csharp
label5.AutoSize = true;
label5.Text = "Hello World";
label5.TextAlign = ContentAlignment.MiddleCenter;
label5.BackColor = Color.Yellow;
// 旋转90度
label5.AutoSize = false;
label5.Size = new Size(100, 20);
label5.TextAlign = ContentAlignment.MiddleLeft;
label5.BackColor = Color.Transparent;
label5.BorderStyle = BorderStyle.FixedSingle;
label5.UseMnemonic = false;
label5.UseCompatibleTextRendering = false;
label5.MouseDown += new MouseEventHandler(label5_MouseDown);
label5.MouseMove += new MouseEventHandler(label5_MouseMove);
label5.Paint += new PaintEventHandler(label5_Paint);
private void label5_MouseDown(object sender, MouseEventArgs e) {
lastPoint = new Point(e.X, e.Y);
}
private void label5_MouseMove(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
label5.Left += e.X - lastPoint.X;
label5.Top += e.Y - lastPoint.Y;
}
}
private void label5_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;
g.TranslateTransform(label5.Width / 2, label5.Height / 2);
g.RotateTransform(90);
g.TranslateTransform(-label5.Height / 2, -label5.Width / 2);
g.DrawString(label5.Text, label5.Font, Brushes.Black, 0, 0);
}
```
在上面的代码中,我们将 Label 的 AutoSize 属性设置为 true,以便让 Label 自适应文本大小。然后我们将它的大小设置为一个新的 Size 对象,该对象的宽度等于 Label 的高度,而高度等于 Label 的宽度。这会将 Label 旋转90度。我们还可以通过设置 TextAlign 属性来更改文本的对齐方式,以使其垂直居中显示。
最后,我们需要使用 MouseDown,MouseMove 和 Paint 事件处理程序来实现拖动 Label 的效果,并在 Paint 事件处理程序中使用 Graphics 对象来绘制旋转后的文本。
阅读全文