VB2008でプログラミングをしています。
以下のような方法で、フォームに作成したユーザコントロールUserCtrl1を
フォームForm1にあるパネルPanel1に呼び出すようにしています。
作成したユーザコントロールは、フォームのプライベート変数にしてあります。
Private uctrl As Control
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
uctrl = New UserCtrl1
Me.Panel1.Controls.Add(uctrl)
End Sub
ここで質問ですが、ユーザコントロールにはテキストボックスTextBox1とボタンButton1が配置されているとします。
テキストボックスにアクセスするには、
CType(uctrl.Controls("TextBox1"), TextBox)
でできることは分かったのですが、ボタンButton1のクリックイベントなど、ユーザコントロール上のコントロールのイベントを元フォームForm1側で検知するには
どうすればよいのでしょうか?
宜しくお願いします。
AddHandlerを使います。
http://msdn.microsoft.com/ja-jp/library/7taxzxka.aspx
が,ユーザーコントロール中のコントロールに直接アクセスというのは気持ち悪いですね……。
ユーザーコントロールが,内部のコントロールのプロパティやイベントに対応する情報を公開するの方が,
ユーザーコントロールとして完結するのでよいかと思います。
ツイート | ![]() |