Ctrl +结束TVirtualStringTree的行为

Meh*_*ide 3 delphi scroll virtualtreeview tvirtualstringtree

当用户按下Ctrl + End时,VirtualStringTree会垂直跳转到最后,这也很好但也是水平的.我不希望它横向走到尽头.水平滚动应该保持原样.

怎么说出来?

TLa*_*ama 5

OnKeyAction在下面的代码检查处理程序,如果CTRL + HOMECTRL + 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;
Run Code Online (Sandbox Code Playgroud)

  • 好吧,似乎你不想;-) (2认同)
  • 我通过使用重载的ScrollIntoView函数来完成这两项工作.我明白了.谢谢 :) (2认同)