TDBCtrlGrid
对鼠标滚轮完全没有React。
我试过这个:
procedure TForm1.FormMouseWheel(Sender: TObject;
Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint;
var Handled: Boolean);
begin
if DBCtrlGrid1.ClientRect.Contains(DBCtrlGrid1.ScreenToClient(MousePos)) then
begin
DBCtrlGrid1.ScrollBy(0, WheelDelta);
Handled := True;
end;
end;
控件网格现在会滚动,但它不会更改DataSet中的位置,而是将其内容移出客户端rect,这看起来非常难看。
如何在TDBCtrlGrid
上启用鼠标滚轮滚动?
2条答案
按热度按时间brccelvz1#
作为解决方法,您可以滚动数据集:
n3schb8v2#
如果你的表单上还有一个隐藏的
DBGrid
,挂接到同一个数据源,有一个更简单的方法。在DBCtrlGrid
的click事件中:DBGrid
似乎只要聚焦就会接收鼠标滚轮事件。然后DBCtrlGrid
随着记录的变化很好地滚动。