delphi 中DBGrid 的滚动条问题

2025-04-13 16:28:37
推荐回答(1个)
回答1:

在窗体上添加一个ApplicationEvent控件,然后在它的OnMessage事件里写以下代码:
procedure TForm1.ApplicationEvents1Message(var Msg:tagMSG;var Handled:Boolean);
begin
if(DBGrid1.Focused)And(Msg.message=WM_MOUSEWHEEL)then
begin
if Msg.wParam>0 then
SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_UP, 0)
else
SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_DOWN, 0);
Handled := True;
end;
end;

这样就能滚动了
如果你懂VCL,可以自己为DBGrid添加一个OnScroll事件,也不难