我编写了一个网格控件,并希望为其添加对鼠标滚轮的支持。我认为它就像覆盖 DoMouseWheel 虚拟方法一样简单,但是它有点问题。
您可以在控制面板中设置一次滚动的行数,默认为三行。这在滚动文档或网页时非常有意义,但是在网格上,我认为期望是一次滚动一行。但似乎 Delphi 的滚轮支持会为我滚动的每个凹槽调用 DoMouseWheel 三次,这意味着我只能滚动到网格中的第三行(或任何全局设置)。
每次转动鼠标滚轮时,如何一次滚动一行?
更新:这里的简短回答是在滚动后简单地将 Result 设置为 True - 然后它不会滚动三次,而只会滚动一次。