2

(.NET WinForms 3.5)を使用してRichTextBoxおり、標準の ShortCut キーの一部をオーバーライドしたいと考えていCtrlますI。テキストを処理するための独自のメソッド。

何か案は?

4

2 に答える 2

5

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;
    }
}
于 2008-11-04T04:13:07.607 に答える
4

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

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");
        }
    }
}
于 2008-11-04T03:52:26.400 に答える