将WebBrowser控件聚焦在C#应用程序中

HIy*_*yer 6 .net c#

我有一个WebBrowser托管在Windows中的控件Form.该控件用于显示在运行时创建的超链接.这些链接指向一些HTML页面和PDF文档.

问题是,当加载托管浏览器控件的表单时,焦点在于表单.TAB按下该键时,焦点不会切换到第一个超链接.但是,如果我在控件上执行鼠标单击然后按下该TAB键,则选项卡焦点现在位于第一个超链接上.我试图使用Select()WebBrowser控制,然后我打电话Focus(),但它并没有解决问题.

有关如何设置选项卡的任何想法都集中在加载时的第一个超链接?谢谢.

干杯,哈里什

Fun*_*eng 10

我想这可能是因为在页面完全加载之前设置了焦点.试试这个:

private void Go(string url)
{
    webBrowser1.Navigate(url);
    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.Body.Focus();
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过获取第一个链接直接自动选择第一个链接上的焦点HtmlElement.

如果上述方法不起作用,您可能需要检查代码的其他部分,以查看是否有其他内容正在捕获焦点.尝试搜索Select,FocusActiveControl在您的代码中.


Joã*_*elo 0

在正常情况下,将控件TabIndex的 值设置为零就足够了。这样,当表单加载时,控件将获得焦点,并且按下将循环访问链接。WebBrowserTAB

请注意,您还应该更改TabIndex表单上其他控件的 。

如果这不能解决您的问题,您需要添加有关托管控件的表单的复杂性的更多详细信息。