bounty将在5天后过期。回答此问题可获得+50声望奖励。qakmak正在寻找标准答案。
我正在Winform
中使用RichTextBox
控件。
最近我发现了一个奇怪的东西,像一个错误,我真的找不到一个方法来修复它。
1.我在Form
中有一个RichTextBox
。
2.我点击并选择了RichTextBox
中的某个地方。
3.我单击了桌面上的任何其他位置(仅针对Deactivate
和Form
)。[重要]
4.然后我用鼠标滚轮把RichTextBox
的滚动条改变到某个地方(但Form
仍处于Deactivate
状态)。
5.现在我用鼠标滚轮滚动后点击了RichTextBox
,但是你会发现当前滚动条的位置变回了原来的位置。
这是用于显示详细信息的gif图像:
我真的希望新点击的地方会被选中,而滚动条不会改变到旧的选择位置。
有没有人知道为什么会发生这种情况?有没有办法解决这个问题?谢谢。
更新日期:
我想问题可能是因为RichTextBox
中的光标,如果我们可以删除它,也许下次单击时它不会回到原来的光标位置,有什么方法可以做到这一点吗?比如每次RichTextBox
失去焦点时删除光标。
另一种可能的方式是:每次移动滚动条或使用鼠标滚轮时,将当前光标位置转到当前滚动条位置。
更新2
我上传了项目文件并录制了视频:https://drive.google.com/file/d/1rY_5mxKR6zOPqHBIOVaARee14-Ietise/view?usp=sharing
你可以下载查看。(我稍后会删除。)
Version Windows 10 Professional
VersionNo 22H2
NT version 19045.2251
1条答案
按热度按时间dsekswqp1#
我也试过和你一样的方法,但是没有你描述的那样的观察结果。
但之后我调用了ScrollToCaret()方法,用于窗体上的文本框Activated事件。然后只生成相同的场景。
我试过的代码
希望这对你有帮助。