2012-08-17 71 views
2

我需要一個可以平滑滾動的字符串網格,而不是鎖定頂行/左列位置。滾動TStringGrid時,左側可見列和頂部可見行會沿頂部/左側邊緣對齊。我需要用戶能夠平滑滾動,而不是將這些邊緣鎖定到位。平滑滾動字符串網格

我不認爲這是可能的VCL TStringGrid修改(或TCustomGrid對於這個問題),因爲它依賴於性能,如TopRowLeftColVisibleRowCount等。我敢肯定,我需要一個第三方控件,但如果可能的話,我很樂意使用TStringGrid,因爲我已經有很多代碼纏繞它了。如果我確實需要第三方網格,那麼我希望它能像TStringGrid一樣緊密合作。

+0

我不知道你在這裏要求什麼。你在談論水平嗎?或垂直滾動​​? 「卡入到位」意味着什麼,或者「將這些邊緣鎖定到位」?我廣泛使用了'TStringGrid',並且不知道你反對什麼行爲或者你想在這裏問什麼。 – 2012-08-17 01:10:45

+0

當您垂直或水平滾動時,它一次移動一列/一行。 – 2012-08-17 02:21:40

+0

但這就是網格的工作方式,例如Excel中使用的那些。網格中的部分數據行沒有用處。如果你不想要這種行爲,那麼你正在使用錯誤的控件。 – 2012-08-17 02:25:46

回答

6

簡單的答案是否定的,你不容像素滾動TStringGrid。您可以使用TScrollBox來模擬網格。您可以在TScrollBox中放置一個網格,使網格足夠大以適應所有行和列,並關閉其滾動條,但某些事情(如鍵盤導航)不起作用。

其它替代方案是在網格模式或TListView使用TVirtualTree。都有這個像素滾動你想要的。

+1

在一個滾動框中放置一個字符串網格時,您需要3個字符串網格;一個用於行標題,一個用於列標題,另一個用於數據區域。 – NGLN 2012-08-17 04:43:15

+3

爲什麼不使用和學習像devexpress的proffessional網格http://www.devexpress.com/Products/VCL/ExQuantumGrid。 – 2012-08-17 05:10:36

+0

我給了'TVirtualTree'了一槍,但'TListView'是太沉重(我沒提到我從'TListView'到'TStringGrid'上的項目成千上萬的移動因業績)。 ExQuantumGrid看起來也很有希望,值得另一個答案。 – 2012-08-17 15:27:48