コントロールを作成しています。
コントロールをフォームに配置したとき、
parentプロパティで親がフォームかどうかを判断し、
親がフォーム(parent != null)だったら,
そのコントロール内で親のKeyDownのイベントをすべて拾いたいのですが
どのようにデリゲートさせればよいのでしょうか?
作成したコントロール内で
this.Parent.KeyDown += new System.EventHandler(this.Parent_KeyDown);
private void Parent_KeyDown(object sender, System.Windows.Forms.EventArgs e)
{
}
という感じでやっているのですが
型が違うらしく読み取ってくれません。
教えて下さい。
こんばんわ。ZEBRAです。
>型が違うらしく読み取ってくれません。
FormのKeyDownイベントは、KeyEventHandler型のデリゲートを受け付けます。
原因は、KeyEventHandlerデリゲートに、EventHandlerデリゲートを代入しようとしてい
るからだと思います。
this.Parent.KeyDown += new System.EventHandler(this.Parent_KeyDown);
↓
this.Parent.KeyDown
+= new System.Windows.Forms.KeyEventHandler(this.Parent_KeyDown);
で試してみてはどうでしょうか?
this.Parent.KeyDown += new KeyEventHandler(this.Parent_KeyDown);
private void Parent_KeyDown(object sender, KeyEventArgs e)
{
}
で出来ました。
ありがとうございました。