获取AutoSize属性为true的Label的Size

24 篇文章 0 订阅
10 篇文章 0 订阅
Winform窗体上定义一个Lable用来显示信息,信息是动态的,由于Lable初始化时宽度是固定的,所以把它的AutoSize属性设置为True,当宽度不够时自动加长。但是后面在设置Label的Location属性时我需要得到Label的Width,但得到的仍然是默认初始化时的宽度,比如我传进的字符数为50个,Label的宽度取的仍然是默认值100。。 怎么才能取得Label的实际宽度呢?


Label lbl = new Label();
lbl.Text = "fjajlgjlaskjgasjlkgasljgalsjglasjglkskfa";
lbl.Font = new System.Drawing.Font("宋体", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));

Graphics g = Graphics.FromHwnd(lbl.Handle);
SizeF size=g.MeasureString(lbl.Text, lbl.Font);//获取大小
g.Dispose();


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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); } ``` 在上面的代码中,我们将 LabelAutoSize 属性设置为 true,以便让 Label 自适应文本大小。然后我们将它的大小设置为一个新的 Size 对象,该对象的宽度等于 Label 的高度,而高度等于 Label宽度。这会将 Label 旋转90度。我们还可以通过设置 TextAlign 属性来更改文本的对齐方式,以使其垂直居中显示。 最后,我们需要使用 MouseDown,MouseMove 和 Paint 事件处理程序来实现拖动 Label 的效果,并在 Paint 事件处理程序中使用 Graphics 对象来绘制旋转后的文本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值