覆盖 .NET RichTextBox 上的快捷键

Ada*_*ile 2 c# richtextbox winforms

我正在使用RichTextBox(.NET WinForms 3.5) 并想覆盖一些标准的 ShortCut 键......例如,我不希望Ctrl+I通过 RichText 方法使文本变成斜体,而是运行我的自己处理文本的方法。

有任何想法吗?

sli*_*les 5

Ctrl+I不是受 ShortcutsEnabled 属性影响的默认快捷方式之一。

以下代码拦截KeyDown 事件中的Ctrl+ I,因此您可以在 if 块内执行任何您想做的事情,只需确保像我所示的那样抑制按键按下即可。

private void YourRichTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Control) == Keys.Control && e.KeyCode == Keys.I)
    {
        // do whatever you want to do here...
        e.SuppressKeyPress = true;
    }
}
Run Code Online (Sandbox Code Playgroud)