在我的自定义标签类的以下属性中,设置Font时,它会找到显示文本的新长度,并相应地更改标签的大小。
/// <summary>
/// Font of Text Displayed
/// </summary>
public Font Font
{
get
{
return _font;
}
set
{
_font = value;
using (Graphics g = _parent.CreateGraphics())
{
SizeF soize = g.MeasureString(_text, _font);
_size = new Size((int)soize.Width, (int)soize.Height);
_width = _size.Width;
_height = _size.Height;
}
然而就行了
SizeF soize = g.MeasureString(_text, _font);
我收到此错误:System.AccessViolationException {“尝试读取或写入受保护的内存。这通常表示其他内存已损坏。”}
仅当我将字体更改为嵌入的自定义字体时才会出现这种情况。通常对于我的自定义标签的大多数实例,即使以相同的方式使用相同的字体,也不会引发错误。它有时似乎没有抛出错误,但我不知道为什么它有时决定工作,有时候,不是。
有谁知道我能做什么?
答案 0 :(得分:1)
随机GDI +相关的AccessViolationExceptions似乎通常是由视频驱动程序引起的。我会尝试两件事: