将WebBrowser控件聚焦在C#应用程序中
我在Windows Form
托管了一个WebBrowser
控件。 该控件用于显示在运行时创建的超链接。 这些链接指向一些HTML页面和PDF文档。
问题是,当加载托管浏览器控件的表单时,焦点在于表单。 按下TAB键时,焦点不会切换到第一个超链接。 但是,如果我在控件上执行鼠标单击然后点击TAB键,则选项卡焦点现在位于第一个超链接上。 我尝试在WebBrowser
控件上使用Select()
,然后我调用了Focus()
,但它没有解决问题。
有关如何设置选项卡的任何想法都集中在加载时的第一个超链接? 谢谢。
干杯,哈里什
我想这可能是因为在页面完全加载之前设置了焦点。 试试这个:
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(); }
您还可以通过获取第一个链接的HtmlElement
直接在第一个链接上自动选择焦点。
如果上述方法不起作用,您可能需要检查代码的其他部分,以查看是否有其他内容正在捕获焦点。 尝试在代码中搜索Select
, Focus
和ActiveControl
。
使用form.ShowDialog(form)
代替form.Show()
,然后它将工作!
其中form
是Windows Form
的运行实例
这是我的解决方案
private void txtAdres_KeyPress(object sender, KeyPressEventArgs e) { int licznik = 1; if (e.KeyChar == (char)13) { string adres = txtAdres.Text; webBrowser1.Navigate(adres); licznik = 0; } if (licznik == 0) { webBrowser1.Focus(); } }
在正常情况下,将WebBrowser
控件的TabIndex
设置为零就足够了。 这样,当表单加载时,控件将被聚焦,按下TAB将遍历链接。
请注意,您还应该更改TabIndex
上其他控件的TabIndex
。
如果这不能解决您的问题,则需要添加有关托管控件的表单的复杂性的更多详细信息。
上述就是C#学习教程:将WebBrowser控件聚焦在C#应用程序中分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1026575.html