我用delphi 中的webbrowser来做了一个多页面浏览器,功能基本正常,但有一个问题,那就是在同时打开几个带有document.f.q.focus()这种函数的网页时,这种网页能够把焦点置在本身网页的文本控件上,比如:www.google.cn你一打开它就自已定位焦点在那个搜索框。在这种情况下,如果我同时打开10个GOOGLE网页(打个比方,现实还有很多类似这种定位焦点的网页的,不要对我说你一下开10个GG网页干什么?开一个就够了,呵呵),当这10个网页按先后顺序打开的时候,后面的网页在打开的时候,就会优先把焦点置在它的网页文本框上面,而我当时正在第一个打开的网页上的文本框上输入文字,结果敲入的文字被中断,有几个在第一个网页的搜索框上,其它的却跑到后面打开的网页的文本框去了,原因也很简单的,就是焦点跑到后面的网页文本框去了。
我应如何不让焦点跑到后面的网页去呢?让它一直在被显示的网页上,让我在输入文本的时候不要被中断啊,高分请教!

解决方案 »

  1.   

    这个可能跟你 webbrowser 的当前页面有关,应该可以通过设置当前页面来解决吧
      

  2.   

    如果WebBrowser的容器是TPageControl的TTabSheet,就不会发生这种问题了如果你的多页面是全部显示的(不必切换),我想了一个笨方法:每个WebBrowser放在一个Panel上,只有最先获得焦点的WebBrowser的Panel.Enabled=True,其余为False,就不会获得焦点了。鼠标在几个WebBrowser之间切换焦点时,可以判断Mouse.CursorPos是否在某个WebBrowser的Rect范围内,决定是否让相应的Panel.Enabled=True当然这个方法有点笨
      

  3.   

    我的WebBrowser的容器是TPageControl的TTabSheet,但依然有这个问题啊,也不懂得是怎么一回事,也不知道如何去弄啊