private void listViewErrorBox_ItemActivate(object sender, EventArgs e)
{
if (listViewErrorBox.SelectedItems.Count == 0)
return;
if (listViewErrorBox.SelectedItems[0].Tag is SourceError)
{
SourceError error = listViewErrorBox.SelectedItems[0].Tag as SourceError;
richTextBox.Select(error.SourceRange.Begin, error.SourceRange.Length);
richTextBox.Focus();
return;
}
else
{
string message = listViewErrorBox.SelectedItems[0].Text;
if (message.StartsWith("<"))
{
string[] items = message.Split("<,>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
int line = Math.Max(int.Parse(items[0]) - 1,0);
int index = int.Parse(items[1]);
int begin = Math.Max(richTextBox.GetFirstCharIndexFromLine(line), 0);
int end = Math.Max(richTextBox.GetFirstCharIndexFromLine(line + 1) - begin, 0);
richTextBox.Select(begin, end);
richTextBox.Focus();
}
}
}