3

当用户按下 Ctrl+End 时,VirtualStringTree 会垂直跳到结尾,这很好,但也可以水平跳。我不希望它水平地走到尽头。水平滚动应保持原样。

这个怎么讲?

4

1 回答 1

5

OnKeyAction以下代码中的处理程序检查或CTRL + HOME是否CTRL + END被按下,如果是,它会(仅垂直)滚动到顶部或底部,具体取决于按下的内容。

procedure TForm1.VirtualTreeKeyAction(Sender: TBaseVirtualTree;
  var CharCode: Word; var Shift: TShiftState; var DoDefault: Boolean);
begin
  if (ssCtrl in Shift) then
  case CharCode of
    VK_HOME:
    begin
      DoDefault := False;
      VirtualTree.ScrollIntoView(VirtualTree.GetFirst, False);
    end;
    VK_END:
    begin
      DoDefault := False;
      VirtualTree.ScrollIntoView(VirtualTree.GetLast, False);
    end;
  end;
end;
于 2012-04-14T08:19:19.970 回答