首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

用GDI+写字到界面的有关问题

2011-12-27 
用GDI+写字到界面的问题想实现以下功能,写字到一个Rectangle中,要求:当字符串长度大于rect的长度时,自动节

用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);
}
}

热点排行