读书人

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

发布时间: 2011-12-27 22:22:55 作者: rapoo

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

读书人网 >C#

热点推荐