我注意到"KeyUp“事件只捕获了一些键(up,down,left,right,Ctrl键,escape键)。在WebBrowser中,该事件捕获键盘中的所有键。如何添加添加按下或释放键的事件?
谢谢
WebView2 mywebView = new WebView2();
mywebView.KeyUp += MywebView_KeyUp;发布于 2021-04-15 02:54:58
在WebView2中,您必须在输入标记中添加onkeyup属性。当一个按键被按下时,需要调用一个javascript方法来处理该事件,或者向主机发回一条"webmessage“来处理它。
下面是我在WebView2中实现"keyup“事件的方法:
为输入标记定义"onkeyup“事件(我使用的是HtmlTextWriter,但这无关紧要)。我调用名为"CallHost“的javascript方法
htmlWriter.AddAttribute("onkeyup", "CallHost(this);");将响应消息发送回主机(这将由C#中的"WebMessageReceived“事件捕获):
function CallHost(element)
{
window.chrome.webview.postMessage(
JSON.stringify({
ElementId: element.id,
Type: element.tagName,
Name: element.name,
Value: element.value
})
);
}C#事件处理程序:
private void MyWebView2_WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs args)
{
MyWebMessage message = JsonConvert.DeserializeObject<MyWebMessage>(args.TryGetWebMessageAsString());
/*handle keyup*/
}https://stackoverflow.com/questions/67096609
复制相似问题