public static TextInputPanel tip; public static bool InitializeTip() { bool result = false; try { tip = new TextInputPanel(); result = true; } catch (Exception) { // Can't instantiate Tip. That's ok for non Touch input devices. We check tip for nulls everywhere this global is used. } return result; }MyTextBoxClass:protected override void OnGotFocus(EventArgs e) { InitializePasteHandler(); if (!_hasFocus && Globals.tip != null && !DisableVirtualKeyboard) { _hasFocus = true; try { Globals.tip.AttachedEditControl = TextBox; Globals.tip.DefaultInputArea = PanelInputArea.Keyboard; Globals.tip.DefaultInPlaceState = InPlaceState.Expanded; Globals.tip.InPlaceVisibleOnFocus = true; Globals.tip.SetInPlaceVisibility(true); } catch (Exception) { // Unable to access virtual keyboard – no action necessary } } base.OnGotFocus(e); if (!(this is TimeTextBox)) // Only put cursor at end of Textbox if it is not a TimeTextBox { SelectionStart = Text.Length; SelectionLength = 0; } } protected override void OnLostFocus(EventArgs e) { _hasFocus = false; if (Globals.tip != null) { try { Globals.tip.AttachedEditControl = null; Globals.tip.AttachedEditControl = _defaultTipWindowsPtr; } catch (Exception) { // Unable to access virtual keyboard – no action necessary } } base.OnLostFocus(e); }Thanks,Dan