我试了一下,无论是TForm或是TPanel都没有出现任何问题,不知道你那边究竟是什么原因!

解决方案 »

  1.   

    var
    dbgrid1:tdbgrid;
    begin
        dbgrid1:=tdbgrid.create(nil);
        dbgrid1.parent:=panel1;
        dbgrid1.Align:=alclient;
    end;//试试
      

  2.   

    我也试过了,没问题
    procedure TForm1.Button1Click(Sender: TObject);
    var
      dbgrid1:Tdbgrid;
    begin
      dbgrid1:=Tdbgrid.Create(Self);
      dbgrid1.Parent:=form1;
    end;
      

  3.   

    既然dreamfan已经试过没问题,哪你就放心的用吧
      

  4.   

    实际上这些初始化代码是在自己写的一个模块里面(如果大家注意的话,这里的sender是TForm类型的,而不是TObject类型),在界面里面肯定没有问题,这个我试过了。
    个人认为dbgrid1.Parent:=form1不太好(因为这样会引起循环引用,而循环引用是我最不喜欢的)
    不过现在问题也已经解决的,想通了,不打算在自定义控件里面封装dbgrid了(太耗费资源了),而只是保存一个指针,指向界面上的dbgrid控件(这个dbgrid大家共用),呵呵。谢谢大家的回答!