在我的自定义标签类的以下属性中,当设置字体时,它会找到显示文本的新长度,并相应地更改标签的大小。
/// <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 {“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。”}
这只发生在我将字体更改为嵌入的自定义字体时。通常对于我的自定义标签的大多数实例,即使以相同的方式使用相同的字体,这也不会引发错误。它有时似乎也可以在没有抛出错误的情况下工作,但我不知道为什么它有时会决定工作,而其他时候则不行。
有谁知道我能做什么?