我需要一个可以平滑滚动的字符串网格,而不是锁定在顶行/左列位置。滚动TStringGrid
时,左侧可见列和顶部可见行沿顶部/左侧边缘捕捉到位。我需要能够让用户顺利滚动,而不是将这些边缘锁定到位。
我认为这不可能在VCL TStringGrid
(或TCustomGrid
中)进行修改,因为它依赖于TopRow
,LeftCol
等属性,VisibleRowCount
等。我很确定我需要第三方控件,但如果可能的话,我很想使用TStringGrid
,因为我已经有很多代码被包裹了它。如果我确实需要第三方网格,那么我希望它能够像TStringGrid
那样密切合作。
答案 0 :(得分:6)
简答为否,你不能像素滚动TStringGrid
。您可以使用TScrollBox
模拟网格。您可以在TScrollBox
内放置网格,使网格足够大以适应所有行和列,并关闭其滚动条,但键盘导航等功能将无效。
其他替代方法是在网格模式或TVirtualTree
中使用TListView
。两者都有你想要的像素滚动。
答案 1 :(得分:0)
我正在寻找类似的东西。不幸的是,你不能用Borland的代码来做,但Lazarus可以做到
Scrolling the TStringGrid pixel by pixel
您可能需要查看他们的代码。