问一个C#中字体处理的问题。

qeveeqnui 2003-10-18 12:22:12
我按照清华大学出版社出版的〈〈Visual C#.net入门与提高〉〉181页中的”字体“一节的程序做的,可是运行时出现对话框:内容如下:

”未处理的“System.ArgumentException”类型的异常出现在system.drawing.dll 中。
其他信息: 字体“Monotype Corsiva”不支持样式“Regular”。
中断,继续, 帮助。

然后看到一个一个绿键头指向下面函数中的:Font f=new Font(fontFamiles[e.index],12);一句。
private void cbxFont_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
Font f = new Font( fontFamilies[e.Index],12 );
Bitmap bmp = new Bitmap("ttfont.bmp");
bmp.MakeTransparent(Color.White);
Graphics g = e.Graphics;
e.DrawBackground();
SolidBrush b = new SolidBrush( e.ForeColor );
g.DrawImage( bmp,e.Bounds.X,e.Bounds.Y );

g.DrawString( fontFamilies[e.Index].Name,f,b,e.Bounds.X+18,e.Bounds.Y);
e.DrawFocusRectangle();


}

我不知道如何修改,请高手们帮帮忙。
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
coudoufu 2003-10-18
  • 打赏
  • 举报
回复
有些字体是不支持倾斜和加粗的,也有些是没有常规版本的(不支持Regular),如果你用它去初始化字体,就会出现如上的异常。
你可以先判断有没有这个样式,再去构造Font对象,如下:
if(ff.IsStyleAvaliable(FontStyle.Regular)
Font fontRegular = new Font(ff,24,FontStyle.Regular)
else

//ff是一FontFamily对象
qeveeqnui 2003-10-18
  • 打赏
  • 举报
回复
问了半天也没有人回答,还扣了我爱你20分。
按理没有人回答不该扣呀。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧