Per communication with engineering team, it's confirmed this is known issue in Revit dockabke pane.
Revit engineering team already created issue REVIT-143199 [Some keyboard keys not handled properly in Winforms Textboxes when inside an API Dockable View] which was already fixed in newer Revit version however the released Revit 2019 versions are not integrated.
To solve this issue in present Revit version, you may consider to use windows API IKeyboardInputSink to manager the key events, see MSDN here:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.interop.ikeyboardinputsink?view=netframew...
Besides, we provided one simple code snippet for your reference, please also refer to attached sample project for your convenience:
public class RevitCustomPropertiesHost : WindowsFormsHost, IKeyboardInputSink
{
[DllImport("user32.dll")]
static extern bool IsDialogMessage(IntPtr hDlg, [In] ref Message lpMsg);
bool IKeyboardInputSink.TranslateAccelerator(ref MSG msg, ModifierKeys modifiers)
{
if (base.TranslateAcceleratorCore(ref msg, modifiers))
return true; // defer to base
#if (Revit2018 || Revit2019)
// Give embedded controls chance to translate, to avoid keys such as delete etc.
// being translated by Revit main UI before the contols get their chance.
Message m = Message.Create(msg.hwnd, msg.message, msg.wParam, msg.lParam);
return IsDialogMessage(Handle, ref m);
#else
// In newer Revit will take care of the translation for winform controls
// embedded in a Dockable pane by default, however, the presence of the code above would
// still work in that scenerio, it would just do it 1 step before the revit code would.
return false;
#endif
}
}
Jim Jia
Autodesk Forge Evangelist
https://forge.autodesk.com
Developer Technical Services
Autodesk Developer Network
Email: Jim.Jia@autodesk.com