2012-09-28 26 views
6

私はユーザーコントロールを持っています。ユーザーコントロール内には、スクリーンプロパティ(Dock.Fill)全体を使用するPictureBoxがあります。私は、キーボードイベント(例えば、ペースト機能を実装するためのCtrl-V)を取得したいと思います。winformsでのキーボードイベント伝播

ただし、PictureBoxにはキーイベントはありません。 PictureBoxの下の次のレイヤー(ユーザーコントロール)がKeyUpイベントを取得しますか?私のKeyUpイベントハンドラをユーザコントロールに追加すると、それは動作しますか?私は、WPFにルーティングされたイベントの解決策があることを知っています。それはwinformsの世界でどのように機能しますか?あなたは、フォームでイベントを受け取ることができhttp://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx

+0

PictureBoxはフォーカスを取得しません。そう、はい、UserControlはメッセージを取得します。フォームの責任をユーザーがコントロールすることを避けてください。 –

答えて

1

あなたはマウスダウンについてMouseUp, MouseEnter, MouseDown or MouseHover ....

リンクを使用することができます。 Form.KeyPreviewを参照してください。

このプロパティをtrueに設定すると、フォームはすべてのKeyPress、KeyDown、およびKeyUpイベントを受け取ります。フォームのイベントハンドラがキーストロークの処理を完了すると、キーストロークがフォーカスのあるコントロールに割り当てられます。

+0

マウスは問題ありません。私はキーボードイベントに問題がありました。 – user1706184