5

如何在设计器模式下的标签控件中防止自动换行,而它的自动大小设置为 false?

基本上我想在设计器模式下自由移动和调整标签的大小,但它的文本应该总是在一行中(如果需要,可以剪切)。

谢谢你的帮助!

4

3 回答 3

5

您想在设计器模式下还是在运行时阻止它?

正如你提到的“如果需要就剪掉!”

我建议你看看: Label.AutoEllipse

于 2012-12-18T15:01:17.307 回答
1

我能想到的唯一方法是创建一个继承 Label 并覆盖 OnPaint 方法的自定义控件。

public class CustomLabel : Label
{
    public CustomLabel()
    {            
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), 0, 0);
    }
}

不利的一面是,如果您想考虑 TextAlign、Padding 和 Margin,您需要在 paint 方法中自己计算。

于 2012-12-18T22:59:19.253 回答
0

我还没有找到解决这个问题的好方法,所以分享我所做的。使用“String.Right”函数。您还可以根据标签宽度控制字符串的长度。下面是一个使用 VB 的示例。这不是解决您的问题的干净解决方案,而是一个简单的解决方案。

myLabel.Text = Strings.Right(myString, 50)

或者

myLabel.Text = Strings.Right(myString, CInt(mylabel.Width*0.25))
于 2018-10-26T20:51:14.833 回答