質問

RichTextBox(.NET WinForms 3.5)を使用していますが、標準のShortCutキーの一部をオーバーライドしたいのですが... たとえば、RichTextメソッドを使用してCtrl + Iでテキストを斜体にするのではなく、テキストを処理する独自のメソッドを実行します。

アイデアはありますか

役に立ちましたか?

解決

Ctrl + Iは、ShortcutsEnabledプロパティの影響を受けるデフォルトのショートカットの1つではありません。

次のコードは、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;
    }
}

他のヒント

RichtTextBox.ShortcutsEnabledプロパティをtrueに設定し、KeyUpイベントを使用してショートカットを自分で処理します。 E.G。

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.textBox1.ShortcutsEnabled = false;
            this.textBox1.KeyUp += new KeyEventHandler(textBox1_KeyUp);
        }

        void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Control == true && e.KeyCode == Keys.X)
                MessageBox.Show("Overriding ctrl+x");
        }
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top