下面的代码只是在处理折行,可以再加入控制该机能的属性,以及保留原值的属性,这样就可以达到比较完美的自定义控件了。
public partial class MyLabel : Label
{
public MyLabel()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
SizeF thisSize = e.Graphics.MeasureString(this.Text, this.Font);
if (thisSize.Width > this.Width)
{
string text = this.Text;
while (thisSize.Width > this.Width)
{
text = text.Substring(0, text.Length - 1);
thisSize = e.Graphics.MeasureString(text, this.Font);
}
this.Text = text;
}
base.OnPaint(e);
}
}