RichtextBox自动将文本方向更改为RightToLeft

时间:2019-02-21 14:27:37

标签: c# winforms richtextbox

我有一个LeftToRight RichTextBox。

我正在捕获n x p事件,并对RichTextBox中的KeyUp做一些修改。

但是我遇到一个奇怪的问题。在替换SelectedText之后,RichTextBox的方向变为RightToLeft。

在CTRL + R之前

enter image description here

之后

enter image description here

这是我的代码(仅CTRL + R引起了问题):

SelectedText

2 个答案:

答案 0 :(得分:3)

WinForms RichTextBox具有一些预定义的键盘快捷键,而 CTRL + R 是将文本方向更改为RightToLeft的快捷键。

您可以将属性 ShortcutsEnabled 设置为false并删除所有键盘快捷键(包括CTRL + C和CTRL + V等有用的快捷键),也可以更改代码,将KeyEventArgs属性SuppressKeyPress设置为true 。

但是您需要使用 KeyDown 事件处理程序,而不是 KeyUp (我想KeyUp来不及抑制任何事情为时已晚)

    private void tbSource_KeyDown(object sender, KeyEventArgs e)
    {
        .......
            case Keys.R:
                appendTag = @"<ruby>{0}<rt></rt></ruby>";
                e.SuppressKeyPress = true;
                break;
    }

键盘快捷键列表在文档中为ShortcutsEnabled属性定义

答案 1 :(得分:2)

CTRL + R是默认快捷方式,它将方向更改为RightToLeft。将RichtTextBox的ShortcutsEnabled属性设置为false。 有关此属性的更多信息,请访问here