[英]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.