開発環境: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
既存のコントロール(例えば TextBox)の内部に Form を操作するコードはありませんし、
その必要が無いように(依存しないように)設計するのが正しいことは理解できていますか?
Visual Studio の設計を無視するような設計をする理由は何でしょうか?
無理を通すにはそれなりのスキルが必要となるわけで、それができないなら既存の
設計に則した処理を考えるべきでは?
フォームをユーザーコントロールにし
ユーザーコントロールをフォームすることに
よりなんとかできました。