如何在richtextbox控件中突出顯示語法作爲用戶類型和使用String []關鍵字。我將很快發佈一個輕量級的記事本到網上,我希望它有語法突出顯示。我正在使用Windows窗體。有人可以發佈代碼示例嗎?如何在RichTextBox中語法突出顯示[C#]?
回答
- RichTextBox syntax highlighting(約RichTextBox的本身會談 - 最小的功能,但你問什麼在這裏)
- A textbox/richtextbox that has syntax highlighting? [C#](會談主要是關於做它的其他方式)
您正在使用的WinForms或WPF?
如果是WPF,你可以看看AvalonEdit。它是免費的,開源的,它在SharpDevelop(開源IDE)中使用。
您可以在richtextbox中更改所選單詞的字體。看看控件的Select和SelectedFont屬性。
但基本上,您需要遍歷單詞,檢查單詞是否存在於關鍵字中,然後使用上述屬性更改字體。
不完全是你的問題的答案,但你看看SharpDevelop文本編輯器組件?它非常輕巧(< 200kB IIRC),可以很容易地嵌入到WinForms應用程序中,併爲內置的多種語言提供語法高亮顯示。
否則,您可能要查看this CodeProject page。它會在輸入時重新格式化RTF,對於大型文件來說這不是很有效,它包含一些令人毛骨悚然的塊,所以我不確定我是否會將它用於生活關鍵型應用程序中,但它絕對是一個好起點指出如何做到這一點。
語法突出顯示並不是一項容易執行的任務。你可以找到許多解決方案(比如涉及修改RTF的解決方案)是一次性解決方案。如果您想在編輯期間動態突出顯示和取消突出顯示的文字,您的代碼必須準備好。我不會重新發明輪子並使用ICSharp.TextEditor或類似來解決您的問題。
Scintilla控制是一個很好的源代碼編輯器,其中包括一系列其他功能中的語法突出顯示。您可以將其嵌入到自己的應用程序中,並且有一個.NET wrapper可用。
使用Scintilla,您可以指定關鍵字,然後在鍵入時應用語法高亮顯示。
如何安裝.dll? – 2009-11-12 01:56:13
如果您從http://scintillanet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34393下載.NET Wrapper,那麼您可以將文件ScintillaNet.dll添加到項目的「參考」(如果您是使用Visual Studio)。 – 2009-11-12 09:29:28
需要將其中一個dll部署到windows \ system32,這是一個很大的缺點 – 2010-01-19 22:18:25
- 1. C#RichTextBox:突出顯示+撤消
- 2. Visual C++ 2008語法突出顯示
- 3. 在docbook中突出顯示語法
- 4. 在TextMate中D語法突出顯示
- 5. 在pydb中語法突出顯示
- 6. 在Eclipse中突出顯示.tpl語法
- 7. 突出顯示RichTextBox中的整行
- 8. Wordpress語法突出顯示
- 9. OpenOffice語法突出顯示
- 10. Vim語法突出顯示
- 11. NSTextView語法突出顯示
- 12. Turbine語法突出顯示
- 13. 在RichTextBox中突出顯示不平衡括號C#Windows窗體
- 14. vi中的語法突出顯示
- 15. AS3中的語法突出顯示
- 16. vim中的JavaScript語法突出顯示
- 17. CSS語法在c#中用正則表達式突出顯示
- 18. 如何在JEditorPane中使用Netbeans平臺語法突出顯示?
- 19. 如何在代碼鏡像中突出顯示語法
- 20. Textmate語法突出顯示,從另一種語言擴展突出顯示
- 21. 有沒有辦法讓richtextbox在失去焦點時顯示突出顯示?
- 22. C++編譯器在stderr上突出顯示CMake語法
- 23. Atmel Studio中的C++沒有語法突出顯示
- 24. c#/。NET/Winforms RichTextBox:突出顯示活動行
- 25. 如何在edittext上突出顯示html,css,js語法?
- 26. 如何打開etherpad中的語法突出顯示
- 27. JavaScript直播語法突出顯示器
- 28. tinyMCE簡單語法突出顯示
- 29. 自定義語法突出顯示rmd
- 30. Visual Studio語法突出顯示
語法突出顯示,對於設計爲在渲染之前回叫或迭代接收文本的文本渲染器,實際上非常簡單:它只是一種詞法分析,根據其標記類型對文本進行分類。但RTF和其他豐富的編輯器不是這樣設計的,模型數據與其表示之間是分開的。 – 2009-11-08 19:31:58
是的,似乎RTF現在看起來挺舊...... :-) – jdehaan 2009-11-08 22:20:31