ユーザーコントロールでフォームイベントを吸収するには

解決


ジェームス木工ボンド  2007-11-27 10:41:30  No: 144135  IP: 192.*.*.*

開発環境:VS2005Pro
開発言語:VB
  おはようございます。
表題の件ですがWindowsフォーム上に
キー入力により表示を変更するユーザーコントロールを設置しています。
現状以下のコード通りフォームのKeyDownとKeyUpイベントで
ユーザーコントロールのメソッドを呼び出していますが。
フォーム側のコードをなくしユーザーコントロール側でコードを
入れたいのです。
ユーザーコントロール側で
 Pravate Sub ユーザーコントロール1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    なんたらかんたらちんたら
 End Sub
としてみたのですがうまくいきません。
なにか良い方法を教えてもらえれば幸いです。

◎ユーザーコントロール1
  Public Function メソッド1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean
    なんたらかんたらちんたら
  End Function
◎フォーム1
  Private Sub フォーム1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    ユーザーコントロール1.メソッド1(sender, e)
  End Sub

  Private Sub フォーム1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
    ユーザーコントロール1.メソッド1(sender, e)
  End Sub
◎フォーム2、フォーム3  ・・・  フォーム20

編集 削除
特攻隊長まるるう  2007-11-27 12:57:13  No: 144136  IP: 192.*.*.*

既存のコントロール(例えば TextBox)の内部に Form を操作するコードはありませんし、
その必要が無いように(依存しないように)設計するのが正しいことは理解できていますか?

Visual Studio の設計を無視するような設計をする理由は何でしょうか?
無理を通すにはそれなりのスキルが必要となるわけで、それができないなら既存の
設計に則した処理を考えるべきでは?

編集 削除
ジェームス木工ボンド  2007-11-29 22:02:37  No: 144137  IP: 192.*.*.*

フォームをユーザーコントロールにし
ユーザーコントロールをフォームすることに
よりなんとかできました。

編集 削除