我有一个LeftToRight RichTextBox。
我正在捕获n x p
事件,并对RichTextBox中的KeyUp
做一些修改。
但是我遇到一个奇怪的问题。在替换SelectedText之后,RichTextBox的方向变为RightToLeft。
在CTRL + R之前
之后
这是我的代码(仅CTRL + R引起了问题):
SelectedText
答案 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