protected override void OnCharacterEntered(char character) { if (character == '\b' && RealText.Length > 0) { RealText = RealText.Substring(0, RealText.Length - 1); } else if ((RealText.Length < MaxLength) && (char.IsLetter(character) || char.IsDigit(character) || (character == '_'))) { RealText += character; Text += IsHidden ? '*' : character; CaretPosition++; } }
protected override void OnCharacterEntered(char character) { if (character == '\b' && CaretPosition > 0) { int cp = CaretPosition; RealText = RealText.Substring(0, CaretPosition - 1) + RealText.Substring(CaretPosition); CaretPosition = cp - 1; } else if (character != '\b' && character != '\t' && character != '\n') { if (RealText == null) { RealText = ""; } RealText = RealText.Substring(0, CaretPosition) + character + RealText.Substring(CaretPosition); CaretPosition++; } }
protected override bool OnKeyPressed(Microsoft.Xna.Framework.Input.Keys keyCode) { switch (keyCode) { case Microsoft.Xna.Framework.Input.Keys.Left: CaretPosition = CaretPosition > 0 ? CaretPosition - 1 : 0; return(true); case Microsoft.Xna.Framework.Input.Keys.Right: CaretPosition = CaretPosition < RealText.Length ? CaretPosition + 1 : CaretPosition; return(true); case Microsoft.Xna.Framework.Input.Keys.Delete: if (CaretPosition < RealText.Length) { RealText = RealText.Substring(0, CaretPosition) + RealText.Substring(CaretPosition + 1); } return(true); default: return(false); } }