簡體   English   中英

如何在RichTextBox [C#]中語法突出顯示?

[英]How to Syntax Highlight in a RichTextBox [C#]?

如何在Richtextbox控件中以用戶類型使用String []關鍵字的方式突出顯示語法。 我將很快在網絡上發布一個輕便的記事本,並且希望它具有語法突出顯示功能。 我正在使用Windows窗體。 有人可以發布代碼示例嗎?

Scintilla控件是出色的源代碼編輯器,其中包括語法突出顯示功能以及其他所有功能。 您可以將其嵌入自己的應用程序中,並且可以使用.NET包裝器

使用Scintilla,您可以指定關鍵字,然后在鍵入時將應用語法突出顯示。

您正在使用WinForms還是WPF?

如果使用WPF,則可以查看AvalonEdit 它是免費和開源的,並在SharpDevelop(開源IDE)中使用。

您可以在richtextbox中更改所選單詞的字體。 看一下控件的Select和SelectedFont屬性。

但實際上,您需要遍歷單詞,檢查關鍵字中是否存在單詞,然后使用上述屬性更改字體。

不完全是您問題的答案,但是您是否看過SharpDevelop的文本編輯器組件? 它非常輕巧(<200kB IIRC),可以輕松地嵌入WinForms應用程序中,並具有針對多種內置語言的語法突出顯示功能。

否則,您可能需要查看此CodeProject頁面 它會在您輸入時重新格式化RTF,這對於大文件而言效率不高,並且包含一些令人毛骨悚然的catch (Exception) { }塊,因此我不確定是否會在對生命至關重要的應用程序中使用它,但是絕對是了解如何完成此操作的良好起點。

高亮顯示語法不是一件容易的事。 您可以找到許多解決方案(例如涉及修改RTF的解決方案)是一次性解決方案。 如果要在編輯過程中即時突出顯示和取消突出顯示單詞,則必須准備好代碼。 我不會重新發明輪子並使用ICSharp.TextEditor或類似方法來解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM