从ActiveForm窗体调用另一个窗体,该窗体放置由其他ActiveForm生成的Ocx控件,如果被调用的窗体被作为子控件使用,那么被调用窗体中的Ocx控件的Tab键和方向键将失效!
  程序代码如下:
  新建一个ActiveForm,其上放置一个PageControl和一个Button,然后再新建一窗体,其上放置一由ActiveForm生成的Ocx控件,在Button的Click事件中调用窗体:
  procedure TActiveForm1.Button1Click(Sender: TObject);
  begin
    frm2 := TForm2.Create(SElf);
    frm2.Parent := TabSheet1;
    frm2.Align := alClient;
    frm2.Show;
  end;  
  在IE运行此程序,则发现Ocx控件的Tab键和方向键失效!
  谁能回答,不胜感激!!!

解决方案 »

  1.   

    frm2 := TForm2.Create(Application);如何?
      

  2.   

    谢谢楼上这位,但试了一下,还是不行!
    如果被调用窗体不作为子控件,直接SHow的话,那么在被调用窗体的FormActivate事件中增加如下两句,是没有问题的:
      procedure TForm2.FormActivate(Sender: TObject);
      Var
        State: ^TComponentState;
      begin
        State := @(Ocx控件名.ComponentState);
        Include(State^, csDesigning);
      end;
    究竟怎么回事,还望各位高人不吝赐教!