カスタムラベルクラスの次のプロパティで、フォントが設定されると、表示されるテキストの新しい長さが検出され、それに応じてラベルのサイズが変更されます。
/// <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 {"保護されたメモリの読み取りまたは書き込みを試みました。これは、他のメモリが破損していることを示していることがよくあります。"}
これは、フォントを埋め込みのカスタムフォントに変更した場合にのみ発生します。通常、私のカスタムラベルのほとんどのインスタンスでは、同じフォントが同じ方法で使用されている場合でも、これはエラーをスローしません。また、エラーをスローせずに動作するように見えることもありますが、なぜ動作することを決定するのか、そうでない場合もあります。
誰かが私に何ができるか知っていますか?