2009-12-25 7 views
2

기본적으로 크로스 플랫폼 호환성을 유지하기 위해 pinvokes를 사용하지 않고 C#으로 완전히 작성된 RichTextBox 또는 TextBox 구성 요소를 대체하고 있습니다..NET/Winforms를위한 완전히 관리되는 텍스트 편집기 구성 요소

RichTextBox에는 텍스트의 URL을 강조 표시하고 사용자가 링크를 클릭 할 때 이벤트 처리기를 제공하는 기능이 있습니다. 그러나 http/https가 아닌 URI 스킴에 대한 지원을 추가 할 수있는 방법이 없기 때문에 어떤 정규 표현식이 강조 표시에 사용되는지 지정할 방법이 없습니다.

+0

나는 당신을 찾을 수 없을 것이라고 생각합니다. – SLaks

답변

2

모노의를 RichTextBox는 C#으로 작성된 오픈 소스이다 : 그것은 모노에서 분리하고 당신이 그것을 원하는 방식으로 실행 그걸 얻기 위해 몇 가지 작업을 수행합니다

http://anonsvn.mono-project.com/viewvc/trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RichTextBox.cs

, 그러나 그것은 시작보다 낫다 할퀴다.

+0

일반 텍스트 상자를 상속 받았다.하지만이 방법은 모든 것을 컨트롤 페인팅 수준까지 낮추는 것이 가장 좋은 옵션 일 것이라고 나는 동의한다. – Latifer

1

TextView로 GtkSharp를 살펴보십시오. 그것은 크로스 플랫폼입니다.

+0

gtk #을 보았습니다.하지만 이미 상당히 큰 winforms 앱을 가지고 있고, mono는 winforms 앱을 멀티 플랫폼으로 사용하는 데 꽤 능숙합니다. RTB는 플랫폼에 중립적 인 방식으로 확장하기에는 너무 융통성이없고 불가능합니다. – Latifer

1

이것은 당신이 찾고있는 것에 조금 과잉이지만, Actipro에서 SyntaxEditor를 고려 했습니까? (http://www.actiprosoftware.com/Products/DotNet/WindowsForms/SyntaxEditor/Default.aspx)

예, 상용 제품 (무료는 아니지만)이지만 원하는대로 할 수 있습니다. 100 % 관리되는 코드이며 일부 언어 플러그인을 지원합니다. 웹 언어 추가 기능.

보기 좋을 수도 있습니다.

+0

이것은 구문 강조 편집기입니다. 그는 (아마도) 최종 사용자가 원하는대로 서식을 적용 할 수있는 서식있는 텍스트 편집기를 원합니다. – SLaks

관련 문제