我创建了一个演示Winforms应用程序,其中包含一个WebBrowser控件,我希望能够在该应用程序首次打开时使用鼠标滚珠进行滚动,而无需先单击WB。只要鼠标指针位于WB上,下面的代码就可以解决问题。但是,当我通过“重新加载”按钮重新加载WB时,无论鼠标指针的位置如何,直到单击WB时滚动才起作用。如果我再次重新加载,则无需单击即可再次滚动。每次重新加载时都以这种方式来回移动。如您在代码中看到的,我通过标签显示ActiveControl的名称以及计数器。它始终显示WB的名称。
我已经在另一台计算机上运行了该软件,根据需要,每次重新加载后都可以滚动。因此,在我的计算机上,关于WB(以及实现该功能的IE)一定存在某种情况,从而导致滚动滚动行为。有什么想法吗?
public partial class Form1 : Form
{
private int navCount = 0;
private string htmlFile = @"D:\WB_Scroll.html";
private string lblText = "Active Control ({0}) = {1}";
public Form1()
{
InitializeComponent();
wb.ScrollBarsEnabled = true;
wb.Navigate(htmlFile);
wb.Select();
}
private void btnReload_Click(object sender, EventArgs e)
{
wb.Navigate(htmlFile);
wb.Select();
lbl.Text = string.Format(lblText, ++navCount, this.ActiveControl.Name);
}
private void Form1_Activated(object sender, EventArgs e)
{
lbl.Text = string.Format(lblText, ++navCount, this.ActiveControl.Name);
}
}