📅  最后修改于: 2023-12-03 15:29:57.293000             🧑  作者: Mango
若你正在使用 CefSharp,你可能遇到了以下问题:当你在 CefSharp 的浏览器控件中输入内容时,keydown 事件不会传递给表单。换句话说,你可能会发现在输入框中键入字母时,未触发任何事件。
我们可以解决这个问题,只需遵循以下步骤:
PreviewKeyDown
事件在你的 CefSharp 浏览器控件上,添加如下代码:
yourBrowserControl.PreviewKeyDown += BrowserControlOnPreviewKeyDown;
BrowserControlOnPreviewKeyDown
方法此时,我们需要编写方法,以在浏览器控件中的 keydown
事件中触发表单。
private void BrowserControlOnPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab)
{
e.IsInputKey = true;
}
}
在这个方法中,我们检查了用户输入的按键,如果它们是 Enter
或 Tab
,那么我们将 IsInputKey
设置为 true
。这将确保 keydown
事件传递到表单。
现在,重新运行你的应用程序,并尝试在浏览器控件中键入字母。你应该会发现这些事件现在会传递给表单。
我们已经成功地解决了 CefSharp 未将 keydown 传递给表单的问题!