protected internal override void KeyDown(InputEventKeyboard e) { lock (RenderRule) { if (RenderRule.Length != 0) { switch (e.KeyCode) { case WinKeys.Left: RenderRule.TextCursor--; RenderRule.SelectedChar = null; break; case WinKeys.Right: RenderRule.TextCursor++; RenderRule.SelectedChar = null; break; case WinKeys.Up: RenderRule.CursorUp(); RenderRule.SelectedChar = null; break; case WinKeys.Down: RenderRule.CursorDown(); RenderRule.SelectedChar = null; break; case WinKeys.Home: RenderRule.CursorHome(); RenderRule.SelectedChar = null; break; case WinKeys.End: RenderRule.CursorEnd(); RenderRule.SelectedChar = null; break; case WinKeys.PageUp: RenderRule.TextCursor = 0; RenderRule.SelectedChar = null; break; case WinKeys.PageDown: RenderRule.TextCursor = RenderRule.Length; RenderRule.SelectedChar = null; break; case WinKeys.Delete: RenderRule.Delete(); RenderRule.BakeText(); RenderRule.SelectedChar = null; break; } } } ResetTimer(); }