日期:2014-05-18  浏览次数:21048 次

用GDI+写字到界面的问题
想实现以下功能,写字到一个Rectangle中,要求:
当字符串长度大于rect的长度时,自动节断字符串,并在后边以“...“补充。
例子:
字符串“I   am   a   boy!”,输出后有可能就变成“I   am   a   bo...”。
是否有直接可用的方法?而不是自己画...

------解决方案--------------------
在窗体或控件上添加如下的代码试试看:

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
string str = "I am a boy! ";
Rectangle rect = new Rectangle(50, 50, 70, 20);
using (StringFormat format = new StringFormat( StringFormatFlags.NoWrap))
{
format.Alignment = StringAlignment.Near;
format.LineAlignment = StringAlignment.Center;
format.Trimming = StringTrimming.EllipsisCharacter;
e.Graphics.DrawString(str, this.Font, SystemBrushes.ControlText, rect, format);
e.Graphics.DrawRectangle(SystemPens.ControlText, rect);
}
}