[英]How can I optimize this or is there a better way to do it?(HTML Syntax Highlighter)
我已經在C#中制作了HTML語法熒光筆,並且效果很好,但是存在一個問題。 首先,它運行起來非常快,因為它的語法逐行高亮顯示,但是當我粘貼多行代碼或打開一個文件時,我必須高亮顯示整個文件,而對於只有150行的文件,該過程可能要花費一分鍾的時間。碼。 我嘗試僅突出顯示RichTextBox中的可見行,但是當我嘗試滾動時卻無法突出顯示新的可見文本。 這是我的代碼:(注意:我需要使用正則表達式,以便可以在<&>字符之間獲取內容)
突出顯示整個文件:
public void AllMarkup()
{
int selectionstart = richTextBox1.SelectionStart;
Regex rex = new Regex("<html>|</html>|<head.*?>|</head>|<body.*?>|</body>|<div.*?>|</div>|<span.*?>|</span>|<title.*?>|</title>|<style.*?>|</style>|<script.*?>|</script>|<link.*?/>|<meta.*?/>|<base.*?/>|<center.*?>|</center>|<a.*?>|</a>");
foreach (Match m in rex.Matches(richTextBox1.Text))
{
richTextBox1.Select(m.Index, m.Value.Length);
richTextBox1.SelectionColor = Color.Blue;
richTextBox1.Select(selectionstart, -1);
richTextBox1.SelectionColor = Color.Black;
}
richTextBox1.SelectionStart = selectionstart;
}
private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
LockWindowUpdate(richTextBox1.Handle);//Stops text from flashing flashing
richTextBox1.Paste();
AllMarkup();
}finally { LockWindowUpdate(IntPtr.Zero); }
}
我想知道是否有更好的方法來突出顯示此內容並使之更快,或者是否有人可以幫助我使其突出顯示可見的文本。
請幫忙。 :)謝謝,坦納。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.