首页 > 解决方案 > 将鼠标悬停在 url RichTextBox 上时更改光标

问题描述

当前,当将鼠标悬停在 RichTextBox (WinForms) 中的 url/链接上时,光标会变为质量非常低的光标而没有抗锯齿。我想使用默认的窗口,它看起来好多了,但我找不到任何解决方案......我只找到了一种更改一般悬停光标的方法,但在悬停在 url 上时却没有。感谢所有回复:)

标签: c#winformsrichtextbox

解决方案


这似乎是 RichTextBox 和 HiDPI 支持之间的错误。当在 WinForms 应用程序中启用 HiDPI 模式时,该控件可以正确呈现 HiDPI 中的文本,但它没有更新的光标。

根据用例,您可能会考虑使用 WebBrowser 控件或类似的东西。它似乎支持更高分辨率的指针光标。它可以很好地查看内容,但对于编辑内容,它可能会有点粗糙。

作为一种粗俗的解决方法,您可以添加 MouseMove 事件处理程序来检测鼠标是否位于超链接上,并手动更改整个控件的光标。这将涉及从 MouseMove 事件参数传入 Point 的 GetCharIndexFromPosition(Point) 方法,然后从 Rtf 属性查看字符串中的 RTF 代码。如果 CharIndex 是非 RTF 字符串,则需要使用 Text 属性,然后使用某种正则表达式确定那里是否有 URL。


推荐阅读