【问题标题】:Change Cursor when hovering over url RichTextBox将鼠标悬停在 url RichTextBox 上时更改光标
【发布时间】:2021-11-27 18:43:37
【问题描述】:

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

【问题讨论】:

标签: c# winforms richtextbox


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,但是我如何准确地检测鼠标是否位于超链接上?我在任何地方都找不到解决方案。
  • 我更新了一些关于 hacky 解决方法的技术提示。
猜你喜欢
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2018-11-12
  • 2020-11-13
相关资源
最近更新 更多