焦点是在提交按钮上了,但按回车无反映,只有用鼠标点击提交按钮才执行SUBMIT.
这是怎么回事呢?
同样页面直接在IE里是可以按回车键执行SUBMIT的。
ASP代码:
<FORM id=loginForm name=loginForm action=login.asp method=post>
<DIV class=inputlabel>用户名</DIV>
<DIV><INPUT class=inputbox size=15 name=userid tabindex="1"></DIV>
<DIV class=inputlabel>密码</DIV>
<DIV><INPUT class=inputbox type=password size=15 name=pass tabindex="2"></DIV>
<DIV align=left><INPUT type=submit value=" 登 录 " name=submit tabindex="3"></DIV></DIV></FORM>

解决方案 »

  1.   

    //添加一个TApplicationEvents,然后添加下列事件响应代码:procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    { fixes the malfunction of some keys within webbrowser control }
    const
      StdKeys = [VK_TAB, VK_RETURN]; { standard keys }
      ExtKeys = [VK_DELETE, VK_BACK, VK_LEFT, VK_RIGHT]; { extended keys }
      fExtended = $01000000; { extended key flag }
    begin
      Handled := False;
      with Msg do
        if ((Message >= WM_KEYFIRST) and (Message <= WM_KEYLAST)) and
          ((wParam in StdKeys) or {$IFDEF VER120}(GetKeyState(VK_CONTROL) < 0) or {$ENDIF}
          (wParam in ExtKeys) and ((lParam and fExtended) = fExtended)) then
        try
          if IsChild(WebBrowser1.Handle, hWnd) then
          { handles all browser related messages }
          begin
            with WebBrowser1.Application as IOleInPlaceActiveObject do
              Handled := TranslateAccelerator(Msg) = S_OK;
            if not Handled then
            begin
              Handled := True;
              TranslateMessage(Msg);
              DispatchMessage(Msg);
            end;
          end;
        except end;
    end; // IEMessageHandler
      

  2.   

    这句出错:
            with WebBrowser1.Application as IOleInPlaceActiveObject do
              Handled := TranslateAccelerator(Msg) = S_OK;
    说IOleInPlaceActiveObject未定义。
    是不是要USES什么啊,这些系统级的东西不太懂啊。
      

  3.   

    uses activex, OleCtrls......