如何在设计器模式下的标签控件中防止自动换行,而它的自动大小设置为 false?
基本上我想在设计器模式下自由移动和调整标签的大小,但它的文本应该总是在一行中(如果需要,可以剪切)。
谢谢你的帮助!
我能想到的唯一方法是创建一个继承 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 方法中自己计算。
我还没有找到解决这个问题的好方法,所以分享我所做的。使用“String.Right”函数。您还可以根据标签宽度控制字符串的长度。下面是一个使用 VB 的示例。这不是解决您的问题的干净解决方案,而是一个简单的解决方案。
myLabel.Text = Strings.Right(myString, 50)
或者
myLabel.Text = Strings.Right(myString, CInt(mylabel.Width*0.25))