如何解决VB.NET 如何将光标方向更改为从右到左或从左到右?
我有一个包含 2 个富文本框的 vb.net 表单。第一个是英文的richtextbox,第二个是阿拉伯的。如何改变光标方向,让输入阿拉伯的richtextbox时向右,输入英文的richtextbox时向左?
解决方法
所有控件都有一个名为 RightToLeft
的属性,用于指示文本输入的方向。
此处如docs中所述:
获取或设置一个值,该值指示控件的元素是否对齐 支持使用从右到左字体的语言环境。
对于您的 RichTextBox
es,可以在表单编辑器的“属性”窗口中设置属性,或者像这样以编程方式设置:
EnglishRichTextBox.RightToLeft = RightToLeft.No
ArabicRichTextBox.RightToLeft = RightToLeft.Yes
如果 RichTextBox
es 专用于英语或阿拉伯语输入,您应该在设计时设置它们。在运行时(在代码中)更改值会产生副作用,文档中对此进行了详细说明:
如果在运行时更改了 RightToLeft
属性的值,只有
保留未格式化的原始文本。
也许您的意思是在输入 RichTextBox
控件时更改输入语言?如果这就是您所追求的,那么您需要处理每个 Enter
的 RTB
事件以通过 InputLanguage
类切换语言。该类具有静态属性,用于获取已安装的输入语言、它们的文化、默认和当前输入语言。
为每个 Enter
添加 RTB
事件处理程序并按如下方式处理它们:
英语 RTB
Private Sub enRTB_Enter(sender As Object,e As EventArgs) Handles enRTB.Enter
Dim lang = InputLanguage.InstalledInputLanguages.
Cast(Of InputLanguage).
FirstOrDefault(Function(x) x.Culture.TwoLetterISOLanguageName = "en")
If lang IsNot Nothing Then InputLanguage.CurrentInputLanguage = lang
End Sub
阿拉伯语实时出价
Private Sub arRTB_Enter(sender As Object,e As EventArgs) Handles arRTB.Enter
Dim lang = InputLanguage.InstalledInputLanguages.
Cast(Of InputLanguage).
FirstOrDefault(Function(x) x.Culture.TwoLetterISOLanguageName = "ar")
If lang IsNot Nothing Then InputLanguage.CurrentInputLanguage = lang
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。