private void lbAlerts_Click(object sender, EventArgs e)
{
EditBoxTab.SelectedTab = tpEdit;
string a = txtEdit.Text.Substring(0, txtEdit.SelectionStart);
int b = WikiRegexes.Newline.Matches(a).Count;
bool done = false;
foreach (KeyValuePair<int, int> kvp in Errors)
{
int current = txtEdit.SelectionStart + b; // offset by number of newlines up to it
if (kvp.Key > current && kvp.Key < txtEdit.Text.Length)
{
RedSelection(kvp.Key, kvp.Value);
txtEdit.ScrollToCaret();
done = true;
break;
}
}
// if no more alerts after caret, start at beginning
if (!done)
{
txtEdit.SelectionStart = 0;
foreach (KeyValuePair<int, int> kvp in Errors)
{
if (kvp.Key > txtEdit.SelectionStart && kvp.Key < txtEdit.Text.Length)
{
RedSelection(kvp.Key, kvp.Value);
txtEdit.ScrollToCaret();
break;
}
}
}
}