- - PR -
フォームとユーザーコントロールのイベント
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-09 18:33
はじめまして、よろしくお願いします。
早速質問なのですが、 古臭い仕様でEnterキーでタブ移動させているプログラムを 作っています。 Form側でEnterキーが押されたことを検知して Tabキーに置き換えているのですが、 Form上に貼り付けたUserControlにKeyDownイベントを 持たせるとそのUserControl上でEnterを押しても Form側のKeyDownイベントが起きません。 (Form側のKeyPreviewはTrueに設定しています。) 解決策としてユーザーコントロールのKeyDownイベントを Form側で受け取る事も出来ると思うのですが、 出来るなら、ユーザーコントロール側のKeyDownイベントの 後に自動的にForm側のKeyDownイベントが走ってくれれば 嬉しいのですが... よろしくお願いします。 [環境] Win2k C# Windowsアプリ |
|
投稿日時: 2004-03-09 18:56
多分もう結論に達していると思いますが(^^;
ユーザコントロールのKeyDownイベントをForm側のメソッドに 関連付ければ良いと思います。 UserControl.KeyDown += new EventHandler(Form側のKeyDown通知を受け取るメソッド) みたいな感じでしたっけ(ぜんぜん未確認) 見当外れだったらすみません(汗 |
|
投稿日時: 2004-03-09 19:02
弟子さん。
ご返信ありがとうございます。 説明不足だったかもしれませんが、 UserControlは1つではなく、複数個貼り付けるので Form側にコーディングすることはなるべく避けたいのです。 コーディングを減らしバグの発生を避けるべく 「UserControlはFormに貼り付けたら完了」 にしたいのです。 やっぱり、無理なのでしょうか..。 |
|
投稿日時: 2004-03-09 19:10
UserControlとFormの関係をBridgeパターン(だったっけ?自信なし)で設計すると、
親クラスだけ書いておける・・・みたいなことできませんか。 Formの親クラス ←通知 UserControlの親クラス ↓ ↑(ダミー) Formの子クラス:実装 UserControlの子クラス みたく。 Webでも使えたので、おそらくこれでいけるかと。 |
|
投稿日時: 2004-03-10 09:00
Bridgeパターンですか?
デザインパターンのひとつでしょうか? どうもそこらへんに疎いもので..。 これも勉強だと思い、ちょっと調べてやってみます。 弟子さん。 貴重な知識をありがとうございました。 |
1