重要提示:我们确实需要所述的功能,因此请不要开始建议替代方案.
我们试图在包含文本和非文本区域的自定义WinForms控件上显示和输入文本 – 换句话说,就是现代画布.
我们需要能够在各种缩放级别和使用其他自定义效果的自定义控件上显示文本和插入符号.但是,我们不希望(或有资金)编写键盘和鼠标输入法代码,行服务代码等 – 该解决方案必须支持标准TextBox支持的所有语言.
因此,我们正在考虑的方法是使用隐藏文本框,并在适当的翻译后将键盘和鼠标事件路由到它,并使用其公共访问器来确定字符的布局方式.理论上,这将使我们能够突出显示所选文本,绘制插入符号,在用户按下键时执行正确的操作(包括使用键盘选择和删除文本).
换句话说,文本区域是隐藏文本框的代理.
结果是我们在文本框的功能基础上,同时克服了诸如缺少缩放等限制.
问题:
这有没有取得成功?任何工作代码都很棒.
更新:快速而肮脏的实验似乎表明TextBox不尊重鼠标消息中发送的鼠标坐标,但似乎直接读取当前鼠标位置.因此,一个新问题:
是否可以以直接TextBox操作的方式投射所有TextBox鼠标事件,以适用于所有语言的方式?我们猜测命中测试方法GetCharIndexFromPosition与文本选择方法Select一起应该就足够了.这看起来合情合理吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。