| > ■No40444 (Ree@ さん) に返信
>自分の中のイメージとしては○○というイベントやメソッドがフォームにある事を前提として
>処理を書くと思うのですが、書き方がわかりません。
親コントロールのイベントやプロパティを使うものを、インターフェイスとして定義
親コントロール側にも上述インターフェイスを実装
UserControlは汎用的に使える部品として作成、そのUserControlを継承したクラスを作成し、その時に上述のインターフェイスを実装する
そして、画面には継承したクラスを使う。
って方法を私は使ったんですけど、どうなんでしょう・・・
例
Public Interface IFWForm
Event Hoge(ByVal sender As Object)
Sub SetHoge()
Property Fuga As Boolean
End Interface
Public Class FormEx
Implements IFWForm
Sub SetHoge()
xxxxxx
End Sub
End Class
Public Class EditBoxEx
Implements IFWForm
Private _frmBase As Form
Protected Overridable Sub EditBoxEx_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Enter
_frmBase = Me.TopLevelControl 'このコントロールが配置されたフォームへの参照を保持
CType(_frmBase , IFWForm).SetHoge() 'フォームのメソッドを実行
End Sub
End Class |