我在使用Splitter控件的时候发现,有时候会拖不动。比如说,我现在窗体上有两个TPanel,中间放一Splitter控件,程序运行时,我可以通过拖动Splitter控件动态改变两个TPanel的大小,可是我发现当把Splitter拖动到最左边时,也就是左边的Panel完全看不见时,有时候Splitter却拖不回来了,特别是右面的Tpanel上有Dbgrid时,如果在里面编辑了数据,Splitter几乎没有一次拖回来过!不知这是Splitter这个控件的Bug还是我的Splitter设定有问题,有谁能解决吗?

解决方案 »

  1.   

    补充一下:
    我发现Delphi的SQL Explorer也有这个问题,只要你编辑了右面的Dbgrid,如果此时Splitter也在最左边,一定就再也拖不动了。
      

  2.   

    改变Splitter的属性,要它美观一点,这事我也遇到
      

  3.   

    我不知道你是如何设置的,我是这样设置的,好像没有出现你所说的问题:
    Panel1,Splitter的Align设为alLeft,Panel2的Align设为alClient.
      

  4.   

    我和yang6130(无限可能) 一样的用法,但却没注意你说的这个问题。一般说来,用户在编辑数据时也不太可能去拖这个Splitter的.
      

  5.   


    设一下最小值当拖到时不让他拖就行了
     if newSize < 30 then accept := False;
     if newsize > self.Width-50 then accept := False;
      

  6.   

    to yang6130(无限可能) 
    to yczyk(小周)
    不会吧,你试试SQL Explorer先打开某个Table节点,然后拖动Splitter到最左边,让左边的树菜单完全隐藏,然后随便改动右面Dbgrid中的一个数据,你就会发现Splitter没反应了,不论是Delphi5或Delphi6都有这个问题耶^_^。