当用户按Ctrl + End时,VirtualStringTree会垂直跳转到最后,这也很好但也是水平的。我不希望它横向走到尽头。水平滚动应保持原样。
如何辨别?
答案 0 :(得分: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;