2009-05-12 2 views
4

서식있는 텍스트 DataGridViewCell을 만들려고합니다. RichTextBox를 편집 컨트롤로 호스팅 할 수 있지만 셀이 편집 모드가 아니면 서식있는 텍스트를 직접 페인트해야합니다. 텍스트를 구문 분석하고 싶지 않습니다. 리치 텍스트로 작동하는 Graphics.DrawString과 동등한 기능 만 있으면됩니다.서식있는 텍스트를 이미지에 렌더링하는 방법은 무엇입니까?

답변

5

Here's an example richtextbox에 인쇄 기능을 추가 할 수 있습니다. 기본적으로 서식있는 텍스트를 인쇄에 사용되는 Graphics 개체로 복사하는 것입니다. 대신 자신의 그래픽 객체를 사용하고 기본적으로 이미지를 "인쇄"하도록 수정할 수 있다고 생각합니다.

편집 :

Here's a post 사람이 이미지를 만들기위한 인쇄 코드를 수정 한 것으로 보인다.

+0

이것은 내가 준 답변입니다. 저는 버퍼링을 이중화하기 위해 사용자 정의 된 트리 뷰와 유사한 접근법을 사용했습니다. 멋지게 작동합니다. –

0

WinForms 내에 해결책이 있다고 생각하지 않습니다. 가장 좋은 방법은 일반 렌더링과 편집에 모두 RichTextBox을 사용하고 편집 모드가 아닐 때만 잠급니다 (Locked을 true로 설정하는 것입니다).

+0

셀이 편집 모드가 아닌 경우 DataGridViewCell의 편집 컨트롤이 표시되지 않습니다. 화면상의 RichTextBox 인스턴스에 대한 액세스 권한이없는 경우에도 텍스트를 렌더링 할 수 있어야합니다. – Simon

+0

이미지를 기반으로 사용자 정의 그래픽 장치 컨텍스트에 인쇄하십시오. 그건 winforms의 기본 부분입니다. –