6

WndProc をオーバーライドしようとしましたが、貼り付けイベントにメッセージが表示されません。

次に、カスタムフィルターを作成しようとしましたが、メソッド PreFilterMessage を使用して、値 257 (KEYUP イベント) のメッセージをキャッチできましたが、それだけでは十分ではありません...

4

2 に答える 2

18

使用する:

 protected override void OnKeyDown(KeyEventArgs e)
 {
      if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
      {
            MessageBox.Show("Hello world");
      }
      base.OnKeyDown(e);
  }

フォームの KeyPreview = true であることを確認してください。

于 2008-10-06T08:50:33.187 に答える
2

これは次の方法で実行できます。

  • フォームの KeyDown (または KeyUp) でCtrl+をインターセプトするV
  • Ctrl+ショートカットを持つ貼り付けオプションを含むメニューをフォームに作成しますV(ユーザーがオプションを探しているため、これはおそらくより良いでしょう)。
  • 質問で説明したようにKEYDOWNメッセージを傍受し、Ctrlそのときに押されているかどうかを確認します(これは3つすべての中で最も難しいと思います)。

個人的には、メニューオプションを使用します。

于 2008-10-06T09:18:48.510 に答える