c# - 将鼠标悬停在 url RichTextBox 上时更改光标
问题描述
当前,当将鼠标悬停在 RichTextBox (WinForms) 中的 url/链接上时,光标会变为质量非常低的光标而没有抗锯齿。我想使用默认的窗口,它看起来好多了,但我找不到任何解决方案......我只找到了一种更改一般悬停光标的方法,但在悬停在 url 上时却没有。感谢所有回复:)
解决方案
这似乎是 RichTextBox 和 HiDPI 支持之间的错误。当在 WinForms 应用程序中启用 HiDPI 模式时,该控件可以正确呈现 HiDPI 中的文本,但它没有更新的光标。
根据用例,您可能会考虑使用 WebBrowser 控件或类似的东西。它似乎支持更高分辨率的指针光标。它可以很好地查看内容,但对于编辑内容,它可能会有点粗糙。
作为一种粗俗的解决方法,您可以添加 MouseMove 事件处理程序来检测鼠标是否位于超链接上,并手动更改整个控件的光标。这将涉及从 MouseMove 事件参数传入 Point 的 GetCharIndexFromPosition(Point) 方法,然后从 Rtf 属性查看字符串中的 RTF 代码。如果 CharIndex 是非 RTF 字符串,则需要使用 Text 属性,然后使用某种正则表达式确定那里是否有 URL。
推荐阅读
- vb.net - 我无法在数据表中搜索一行并更新 vb.net 中的行单元格数据
- android - 处理Fragment类ListView的按钮事件?
- python-3.x - 如何在 python 中获得有效的反斜杠
- android - React Native:当组件挂载时,AppState 监听器中的活动状态被触发
- c++ - 存储在 *vector 中的哈希表
- windows - docker无效消息 - 来自守护程序的错误响应:无效模式
- terraform - Terraform 将 NIC 附加到 Azure 中的正确子网 ID
- javascript - 如何编写无限期在“后台”运行的代码
- react-native - 在由 npx create-react-native-app 引导的项目上运行 yarn 时,在最新的 expo-cli 上生成 SSL 问题
- terminal - 如何在mac的命令行上打开Visual Studio