Я сделал подсветку синтаксиса HTML в C #, и она прекрасно работает, но есть одна проблема. Во-первых, он работает довольно быстро, потому что синтаксис подсвечивает построчно, но когда я вставляю более одной строки кода или открываю файл, мне нужно выделить весь файл, который может занять до минуты для файла, содержащего только 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); }
}
Я хочу знать, есть ли лучший способ выделить это и сделать его быстрее или кто-то может помочь мне сделать так, чтобы он выделил только видимый текст.
Пожалуйста, помогите. :)
Спасибо, Таннер.