我在我的应用程序中使用resco控件开发了一个自定义键盘我目前使用以下代码处理退格键单击事件
private void customKeyboard1_KeyboardKeyUp(object sender, Resco.Controls.Keyboard.KeyPressedEventArgs e)
{
if (e.Key.Text == "Backspace")
{
Resco.Controls.Keyboard.CustomKeyboard.SendBackspace();
e.Handled = true;
}
}
这适用于应用程序中的编辑框,但不适用于网页中的编辑框(例如,在gmail用户名文本框中)。
有没有办法手动提升KeyDown事件
答案 0 :(得分:1)
P / Invoke PostKeybdMessage。
编辑1
这些方面的东西:
[DllImport("coredll.dll", SetLastError = true)]
internal static extern bool PostKeybdMessage(IntPtr hwnd, uint vKey,
uint flags, uint cCharacters,
uint[] pShiftStateBuffer,
uint[] pCharacterBuffer);
private static void SendChar(byte key)
{
uint KeyStateDownFlag= 0x0080;
uint KeyShiftDeadFlag= 0x20000;
uint[] buf1 = new uint[] { (uint)key };
uint[] DownStates = new uint[] { KeyStateDownFlag };
uint[] DeadStates = { KeyShiftDeadFlag };
PostKeybdMessage(new IntPtr(-1), 0, KeyStateDownFlag, 1, DownStates, buf1);
PostKeybdMessage(new IntPtr(-1), 0, KeyShiftDeadFlag, 1, DeadStates, buf1);
}