如何防止 RichTextBox 中的延迟滚轮滚动

how to prevent delayed wheel scrolling in a RichTextBox

提问人:Andrea Bardelli 提问时间:10/28/2023 最后编辑:Andrea Bardelli 更新时间:10/31/2023 访问量:56

问:

当您在 RichTextBox 中使用鼠标滚轮滚动时,在您停止转动滚轮后,滚动会继续一段时间。 我希望它在车轮停止转动后立即停止。
实现这种行为的方法是什么?

控件上似乎没有任何相关属性。

我计划将它用作类似控制台的只读输出,因此到目前为止,它没有任何花哨的附加功能:只是一个黑色背景的 Form-Wide 框。

--解决方案--
正如下面的评论所指出的那样,
覆盖的案例巧妙地做到了这一点。
WndProc()WM_MOUSEWHEEL

只需确保使用 bitshift 来测试 IntPtr 符号即可

C# WinForms RichTextBox

评论

0赞 Jimi 10/28/2023
系统特点:Settings->Devices->Mouse->Choose how many lines...
0赞 Andrea Bardelli 10/28/2023
您@Jimi建议更改鼠标滚轮设置系统范围或..?
1赞 Jimi 10/28/2023
如果你真的想改变这一点,你可以通过自己处理滚动来抑制预定义的行为。例如,请参阅如何将 RichTextBox 控件滚动到给定点,而不考虑插入符号位置、同步具有不同内容的两个控件的滚动位置
3赞 Hans Passant 10/28/2023
stackoverflow.com/questions/11100569/......
1赞 IVSoftware 10/29/2023
汉斯的链接指向了这个问题。该线程上公认的答案在这里:stackoverflow.com/a/11104336/5438626。我只是自己尝试过。它简单、优雅且有效。

答: 暂无答案