2013-05-08 69 views

回答

5

试试这个:

EnableScrollBar(DBGrid1.Handle,SB_HORZ,ESB_DISABLE_BOTH); 
ShowScrollBar(DBGrid1.Handle,SB_HORZ,False); 

的问题是,禁用滚动,但它显示:-(

其他选项是:

TDBgrid2 = class(TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
    . 
    . 
procedure TDBgrid2.WMNCCalcSize(var msg: TMessage); 
var 
    style: Integer; 
begin 
    style := getWindowLong(handle, GWL_STYLE); 
    if (style and WS_HSCROLL) <> 0 then 
    SetWindowLong(handle, GWL_STYLE, style and not WS_HSCROLL); 
    inherited; 
end; 

更复杂,但它是完美的解决方案

+0

如果您选择第二种解决方案,还请记住在.dfm文件中更改类 – 2013-05-08 08:55:44

+0

我遇到问题 - 滚动条曾经是客户区不可点击 - >无法选择底行 – 2016-06-13 13:52:27

1

大卫的完美解决方案的后续工作您不必改变e .dfm中的类如果使用相同的类型名称

TDBgrid = class(DBGrids.TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
+0

好戏! X-) – 2015-02-11 10:59:56