2012-06-15 7 views
1

내 사용자 지정 레이블 클래스의 다음 속성에서 글꼴을 설정하면 표시되는 텍스트의 새로운 길이를 찾고 그에 따라 레이블 크기를 변경합니다.다른 글꼴로 문자열 측정 AccessViolationException 처리되지 않았습니다

SizeF soize = g.MeasureString(_text, _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; 
      } 

: System.AccessViolationException { ". 보호 된 메모리를 읽거나 쓰려고 시도이 종종 다른 메모리가 손상되었음을 나타냅니다."}

이 글꼴은 포함 된 사용자 지정 글꼴로 변경할 때만 발생합니다. 대개 내 사용자 정의 레이블의 대부분 인스턴스에서 동일한 글꼴이 같은 방식으로 사용 되더라도 오류가 발생하지 않습니다. 때로는 오류가 발생하지 않고 작동하는 것처럼 보일 수도 있지만 때로는 작동 여부를 결정하는 이유와 다른 경우가 아닌지 잘 모르겠습니다.

내가 할 수있는 것을 아는 사람이 있습니까?

+0

사용자 정의 글꼴 도랑. –

답변

1

랜덤 GDI + 관련 AccessViolationExceptions은 비디오 드라이버로 인해 자주 발생하는 것 같습니다. 나는 두 가지를 시도 할 것입니다 :

  1. 업데이트 드라이버
  2. 다른 제조업체의 비디오 카드와 컴퓨터에이 시도 (당신은 엔비디아 또는 그 반대의 경우 즉 ATI의 시도).
+0

오류를 수정했는데, 어떤 이유로 글꼴 ​​변경을 마지막으로 호출해야했습니다. –

+0

죄송합니다, 동일한 문제가 있습니다. 어떻게 고쳤습니까? @ ρσ ݥ zση – name1ess0ne

관련 문제