void kb_CharacterEntered(char character) { if (_activeControl != null && character == '\t' && !_activeControl.HandleTab()) { if (_activeControl.Parent != null) { Control parent = _activeControl.Parent; int cIdx = -1; for (int i = 0; i < parent.Controls.Count; i++) { if (parent.Controls[i] == _activeControl) { cIdx = i; break; } } if (cIdx != -1) { cIdx++; if (cIdx >= parent.Controls.Count) { cIdx = 0; } Control next = parent.Controls[cIdx]; int started = cIdx; while (!next.TabStop) { cIdx++; if (cIdx >= parent.Controls.Count) { cIdx = 0; } next = parent.Controls[cIdx]; if (cIdx == started) { break; } } SetActiveControl(parent.Controls[cIdx]); } return; } } if (_activeControl != null) { _activeControl.OnKeyPress(character); } }