private void MoveCaretToNextWord(bool Select)
{
int x = Caret.Position.X;
int y = Caret.Position.Y;
int StartType;
bool found = false;
if (x == Caret.CurrentRow.Text.Length)
{
StartType = 1;
}
else
{
string StartChar = Document[y].Text.Substring(Caret.Position.X, 1);
StartType = CharType(StartChar);
}
while (y < Document.Count)
{
while (x < Document[y].Text.Length)
{
string Char = Document[y].Text.Substring(x, 1);
int Type = CharType(Char);
if (Type != StartType)
{
if (Type == 1)
{
StartType = 1;
}
else
{
found = true;
break;
}
}
x++;
}
if (found)
break;
x = 0;
y++;
}
if (y >= Document.Count - 1)
{
y = Document.Count - 1;
if (x >= Document[y].Text.Length)
x = Document[y].Text.Length - 1;
if (x == - 1)
x = 0;
}
Caret.SetPos(new TextPoint(x, y));
if (!Select)
Selection.ClearSelection();
if (Select)
{
Selection.MakeSelection();
}
ScrollIntoView();
}