1

我有一个 Winform 程序,上面TabControl有两个TabPagesWebBrowser每个都有一个。

当我更改标签时,我试图将注意力集中在正确的浏览器上,这样我就可以使用鼠标滚轮滚动。这是我使用的代码:

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    If TabControl1.SelectedTab Is TabPage1 Then
        WebBrowser1.Focus()
    ElseIf TabControl1.SelectedTab Is TabPage2 Then
        WebBrowser2.Focus()
    End If
End Sub

有时有效,有时无效。但这就是我观察到的。

键盘向上和向下箭头键始终正确滚动,即使鼠标滚轮没有滚动。
如果我转到我打开的另一个程序(在 Windows 7 中),然后回到这个表单,大多数情况下鼠标滚轮会在此之后滚动。

为什么所有的片状行为?

4

1 回答 1

1

不知道为什么会出现奇怪的行为,但我做了一个示例项目,并为 Web 浏览器控件的 GotFocus 和 LostFocus 设置了一些事件处理程序。当触发事件并且它并不总是调用 LostFocus 事件时,我会输出一些调试文本,并且当发生这种情况时,滚动将不起作用。

尝试将焦点设置在 Web Broswer Document 上:

WebBrowser1.Document.Focus()
于 2013-07-01T19:48:26.190 回答