【问题标题】:Disable Space key for WebBrowser禁用 WebBrowser 的空格键
【发布时间】:2011-06-24 17:37:40
【问题描述】:

当用户关注 webBrowser Control 并按下 Space 键时,webBrowser 向下滚动。 如何禁用此事件?

【问题讨论】:

  • 这是设计使然,也是用户的预期行为。在您计算机上的任何浏览器中尝试。您不应该尝试禁用此功能。
  • 我需要自定义这个行为。
  • 显然你没有抓住重点。您不应该自定义该行为。你根本不应该对它做任何事情。控件是设计的,它应该以这种方式工作,用户将期望它以这种方式工作,如果它没有' t 在您的应用程序中,那么您的应用程序将/将被破坏。如果您发现自己需要自定义此行为,则说明您的设计存在严重问题。而是发布一个关于此的问题。你会得到更好的帮助。
  • 在我的情况下,我需要一个 webBrowser 控件,它可以在按下空格键时触发我的自定义事件( 而不是 在它之后向下滚动)。那么问题是什么!?
  • @Cody: 有规则……总有例外。

标签: winforms c#-4.0 controls webbrowser-control


【解决方案1】:

最后这段 javascript 代码解决了我的问题:

onkeypress='if(event.keyCode=13) return false;'

因为 spaceKey 的错误返回会阻止 webBrowser 向下滚动!

【讨论】:

    【解决方案2】:

    我认为您需要中断应用程序中的键盘事件并取消发送到控件的事件信息,请确保您不要一直取消 Space 键,因为它是必需的在其他地方。

    http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keypress.aspx

    希望有帮助!!

    【讨论】:

    • 我添加了一个空格键按下事件。但在触发此事件后,webBrowser 向下滚动!
    • 你的意思是你取消了那个活动,但它仍然不起作用?
    • 我在 webBrowser1_PreviewKeyDown 事件中添加了我的自定义代码,在触发该事件后,webBrowser 会自动向下滚动。
    • 您需要中断包含 webBrowser1 的应用程序上的键盘事件,您不能覆盖控件本身内置的默认事件。
    • 我已经处理了自定义 PreviewKeyDown 事件中的空格键按下,但问题仍然存在!
    【解决方案3】:

    使用 _PreviewKeyDown 事件
    例子:

    If e.KeyCode = Keys.Space Then
        WebBrowser1.Navigate("javascript:scroll(0,0)")
    
    End If
    


    ;)

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2021-04-22
      • 1970-01-01
      • 2022-12-17
      • 2019-09-07
      相关资源
      最近更新 更多