VB.NET 如何将光标方向更改为从右到左或从左到右?
VB.NET How can I change cursor direction to right-to-left or left-to-right?
我有一个包含 2 个富文本框的 vb.net 表单。第一个英文富文本框,第二个阿拉伯文富文本框。如何改变光标的方向,使其在输入阿拉伯语richtextbox时向右转,输入英文richtextbox时向左转??
所有控件都有一个名为 RightToLeft
的 属性,用于指示文本输入的方向。
此处如docs所述:
Gets or sets a value indicating whether control's elements are aligned
to support locales using right-to-left fonts.
对于您的 RichTextBox
es,要么在表单编辑器的属性 window 中设置 属性,要么像这样以编程方式设置:
EnglishRichTextBox.RightToLeft = RightToLeft.No
ArabicRichTextBox.RightToLeft = RightToLeft.Yes
如果 RichTextBox
es 专用于英语或阿拉伯语输入,您应该在设计时设置它们。在运行时(在代码中)更改值有一个副作用,在文档中有详细说明:
If the value of the RightToLeft
property is changed at run time, only
raw text without formatting is preserved.
也许您的意思是在输入 RichTextBox
控件时更改输入语言?如果这就是您所追求的,那么您需要处理每个 RTB
的 Enter
事件以通过 InputLanguage
class 切换语言。 class 具有静态属性以获取已安装的输入语言、它们的文化、默认和当前输入语言。
为每个 RTB
添加 Enter
事件处理程序并按如下方式处理它们:
英语 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
阿拉伯语 RTB
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
我有一个包含 2 个富文本框的 vb.net 表单。第一个英文富文本框,第二个阿拉伯文富文本框。如何改变光标的方向,使其在输入阿拉伯语richtextbox时向右转,输入英文richtextbox时向左转??
所有控件都有一个名为 RightToLeft
的 属性,用于指示文本输入的方向。
此处如docs所述:
Gets or sets a value indicating whether control's elements are aligned to support locales using right-to-left fonts.
对于您的 RichTextBox
es,要么在表单编辑器的属性 window 中设置 属性,要么像这样以编程方式设置:
EnglishRichTextBox.RightToLeft = RightToLeft.No
ArabicRichTextBox.RightToLeft = RightToLeft.Yes
如果 RichTextBox
es 专用于英语或阿拉伯语输入,您应该在设计时设置它们。在运行时(在代码中)更改值有一个副作用,在文档中有详细说明:
If the value of the
RightToLeft
property is changed at run time, only raw text without formatting is preserved.
也许您的意思是在输入 RichTextBox
控件时更改输入语言?如果这就是您所追求的,那么您需要处理每个 RTB
的 Enter
事件以通过 InputLanguage
class 切换语言。 class 具有静态属性以获取已安装的输入语言、它们的文化、默认和当前输入语言。
为每个 RTB
添加 Enter
事件处理程序并按如下方式处理它们:
英语 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
阿拉伯语 RTB
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