richTextbox获取键盘焦点后首次输入无效(出现“噔”的提示音)
想做一个:热键(Alt+S)呼出一个窗口,窗口内有一个Richtextbox,呼出后直接输入(假定英文输入法),要求能够输入到Richtextbox里。
private IntPtr MainWindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) //系统消息回调
{
switch (msg)
{
case HotKey.WM_HOTKEY:
{
int sid = wParam.ToInt32();
if (sid == alts) //输入Alt+S热键
{
this.WindowState = WindowState.Normal;
this.Topmost = true;
Keyboard.Focus(richTextBox);
;
}
else if (sid == altd) //试图使用Alt+D隐藏
{
this.WindowState = WindowState.Minimized;
}
handled = true;
break;
}
}
return IntPtr.Zero;
}
目前采用这样的代码进行控制通过这样的编码后,尽管能够热键呼出窗口,呼出后键盘输入光标也在Richtextbox中闪,但是第一个键压下去的时候会出现噔的一声,有一种感觉当前窗口没被激活的样子。 紧接着输入就正常了。 不懂为什么会发生这样的问题。 想做到呼出、直接输入这样的流畅的功能。 恳请大家帮助。