我的mdi主窗口中有一个查询按钮button1和一个用于创建mdichildform的按钮button2,mdichildform中有一个DBgrid,现在运行程序,点击button2,mdichildform被创建并且打开,然后点击button1,dbgrid中显示了查询的数据,现在问题出现了,我再点击DBgrid的时候,无论我怎么点,都无法选择任何的数据,就好像在一个没有任何组建的form上点的效果一样,也就是dbgrid无法获得焦点,但是当我切换了窗口,比如把qq聊天窗口打开然后再切换回去,dbgrid就正常了,可以选择记录了,我把mdichildform改成一般的窗体,这个问题也不会出现,又或者我把查询按钮放到mdichildform上,这个问题仍然不会出现,我想请教请教大家,这到底是怎么一回事?该怎么解决呢?

解决方案 »

  1.   

    wzllin (结核杆菌)大哥:
        最近我也遇到了类似的问题,我在网上搜索时,发现了一年前您在其它论坛留的贴子.我经过反复琢磨,想出了一个不是办法的办法,您不妨试试,这个办法在我的程序中可以将就着用,如果您想到更好的办法请告诉我.
    解决办法是这样的,用一个其它可以正常获得焦点且不影响DBGrid获得焦点的控件过度一下:
    编写DBgrid的OnMouseMove事件:(注意:我的是C++代码,请转换成Delphi代码)
    {
    能正常获得焦点且不影响DBGrid获得焦点的控件->SetFocus();
    DBGrid1->SetFocus() ;
    }
    这个办法很可笑!!如果您想到了更好的办法请告诉我一声