| タイトル | : 基底関数の振る舞い |  
| 記事No | : 4852 |  
| 投稿日 | : 2007/01/19(Fri) 10:39 |  
| 投稿者 | : DOON  |  
 DOONです。 お世話になっています。
  下の質問でもお世話になりました。 現在vb.net 2005 windowsxpでユーザーコントロールを作成中です。 そこで、基底関数の振る舞いについて分からなくなりました。 ご存知の方、教えてください。 少し文章が長くなりますが、ご了承ください。
  今作成している、ユーザーコントロールはTextBoxのみの作成です。 TextBoxをそのまま継承して作成しています。 ここで例として、TextChangedのイベントの中身を実装したユーザーコントロールを 作成しようとしています。 ユーザーコントロールのソース内に、 OnTextChangedを書いてみました。以下になります。     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
          MyBase.OnTextChanged(e)     End Sub すると自動でMyBase.OnTextChanged(e)が書き込まれました。 そのあと、テスト用に、同じソリューションファイル内に WindowsApplicationプロジェクトを作成。 フォームにそのユーザーコントロールを貼り付けました。 貼り付けたテキストボックスをTextBox1とします。 そのWindowsApplicationのフォームのソースに     Private Sub TextBox1_TextChanged(ByVal .....
      End Sub と書き込みました。 実際WindowsApplicationを実行してみました。 textbox1に値を代入すると、 ユーザーコントロール内のOnTextChangedが走ります。 そして、基底関数を呼びます。 その後にWindowsApplicationのTextBox1_TextChangedが走ります。
  この振る舞いが正しいとは思うので、それを踏まえてユーザーコントロールを 作成しようと思いました。そもそもWindowsApplication内にTextBox1_TextChanged という、ソースは書かないようにはするつもりです。
  質問はこのMyBase.OnTextChanged(e)はユーザーコントロールの 基底関数のメソッドを呼ぶのではないのですか? 私の中ではユーザーコントロールの基底関数はSystem.windows.formだと思うのですが? 大きな勘違いがありそうです。
  どなたか教えていただけませんでしょうか? 
 
 |