You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中禁用Microsoft.Web.WebView2.WinForms.WebView2的Ctrl+F查找及窗体切换问题处理

WebView2 WinForms控件两个问题的VB解决方案

1. 禁用Ctrl+F触发的查找功能

有两种可靠实现方式:

  • 方式一:直接关闭查找功能
    在WebView2的CoreWebView2InitializationCompleted事件中修改核心设置,彻底禁用查找功能,Ctrl+F将不再触发查找窗口:
Private Sub WebView21_CoreWebView2InitializationCompleted(sender As Object, e As CoreWebView2InitializationCompletedEventArgs) Handles WebView21.CoreWebView2InitializationCompleted
    If e.IsSuccess Then
        WebView21.CoreWebView2.Settings.IsFindEnabled = False
    End If
End Sub
  • 方式二:仅拦截Ctrl+F快捷键
    如果需要保留其他查找触发方式(比如脚本调用),可在WebView2的PreviewKeyDown事件中拦截组合键:
Private Sub WebView21_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles WebView21.PreviewKeyDown
    If e.Control AndAlso e.KeyCode = Keys.F Then
        e.IsInputKey = True ' 标记为已处理,阻止WebView2响应
    End If
End Sub

注意:此方式仅在WebView2控件获得焦点时生效。

2. 切换窗体时自动关闭查找窗口

监听WebView2所在窗体的Deactivate事件,当窗体失去激活状态时,强制关闭查找窗口:

Private Sub Form1_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
    If WebView21.CoreWebView2 IsNot Nothing Then
        WebView21.CoreWebView2.StopFinding(CoreWebView2StopFindAction.HideFindUI)
    End If
End Sub

如果需要精准控制(仅当查找窗口显示时才关闭),可结合FindUIChanged事件记录状态:

Private isFindUIShowing As Boolean = False

Private Sub WebView21_FindUIChanged(sender As Object, e As Object) Handles WebView21.CoreWebView2.FindUIChanged
    isFindUIShowing = WebView21.CoreWebView2.IsFindUIShowing
End Sub

Private Sub Form1_Deactivate(sender As Object, e As EventArgs) Handles Me.Deactivate
    If WebView21.CoreWebView2 IsNot Nothing AndAlso isFindUIShowing Then
        WebView21.CoreWebView2.StopFinding(CoreWebView2StopFindAction.HideFindUI)
        isFindUIShowing = False
    End If
End Sub

内容的提问来源于stack exchange,提问作者Manjeet Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 12:10:01