2 zhangxc0801 ZHANGXC0801 于 2014.07.27 12:48 提问

delphi鼠标滚动条的问题

问题描述

1.我在mainform的FormMouseWheel的事件里边写了相应鼠标滚轮的事件。然后刚进系统,鼠标滚动,滚动条也能正常滚动。

procedure TMainForm.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
・・・
    if WheelDelta < 0 then
      sbxts200001.perform(WM_VSCROLL, SB_LINEDOWN, 0)
    else
      sbxts200001.perform(WM_VSCROLL, SB_LINEUP, 0)
・・・

2.但进入stringgrid编辑东西后,鼠标滚动,貌似是响应了stringgrid的滚动条,之后就无法让scrollbox相应鼠标滚动了。

3.好像问题点在于:

stringgrid编辑之前,鼠标针对的对象是form
stringgrid编辑之后,鼠标滚动的对象就变成了stringgrid了。

我在stringgrid的onexit事件中写了Form1.SetFocus;
结果还是不对

4.问下各位大侠,有什么办法,在编译stringgrid之后,重新让scrollbox相应鼠标滚动呢??

1个回答

Olenichenko_vov
Olenichenko_vov   2014.09.19 23:26

if StringGrid.RowCount > StringGrid.VisibleRowCount then
StringGrid.TopRow := StringGrid.RowCount - StringGrid.VisibleRowCount;
StringGrid1.Row := StringGrid.RowCount - 1;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!