检查一下你的程序运行后,当生成TWEBBROWER后鼠标的位置,如果当前鼠标焦点在菜单上则按F出现菜单。我用DELPHI5做了你这个程序,当把鼠标点到网页内的编辑框后,输入菜单的热键没有出现问题。

解决方案 »

  1.   

    呵呵,鼠标不但在编辑框里,而且我可以输入除了菜单热键以外的其他任何字符。
    但一输入热键字母菜单就会自动打开!以下是完全的代码:
    可以看到,连setfocus都没作用!
    why??可能您在design time 就把twebbrowser放到tabsheet上去了吧
    我一开始form上就没有任何webbrowser,完全动态创建unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ComCtrls, Menus, ToolWin, MenuBar, OleCtrls, SHDocVw_TLB,
      Buttons;type
      TForm1 = class(TForm)
        MainMenu1: TMainMenu;
        f1: TMenuItem;
        editE1: TMenuItem;
        NewN1: TMenuItem;
        New1: TMenuItem;
        pc: TPageControl;
        Button1: TButton;
        MenuBar1: TMenuBar;
        BitBtn1: TBitBtn;
        procedure Button1Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
         ri:tWEBBROWSER;
    implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var temp:ttabsheet;
    begin
       temp:=ttabsheet.create(self);
       ri:=tWEBBROWSER.Create(self);
       temp.PageControl:=pc;
       temp.InsertControl(ri);
       ri.Align:=alClient;;
       RI.Navigate('http://www.yahoo.com');end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    ri.free;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
    ri.SetFocus;
    end;end.
      

  2.   

    在ri.setfocus真的有效吗,你最好用tab,enter键看当前焦点是否在webbrowser中,而且据我所知,webbrowser下还有两层窗口,我试过几个方法设置焦点都失败了
      

  3.   

    我用delphi3这么做,没问题。
    建议检查一下硬件,并杀毒。
    ?是不是该用
    var a,b,c,d:olevariant;
    navigate('http://adsfsad.com',a,b,c,d);
      

  4.   

    使用webbrowser控件内存会越来越少吗?为何我会?
    有何解决方案?