タイトル : Re^3: 基底関数の振る舞い 投稿日 : 2007/01/19(Fri) 17:46 投稿者 : Hongliang
> > イベントという仕組み(Handles キーワードがポイント)を使って、 > このHandlesのソースは見れないんですかね。 > Friend WithEvents TextBox1 As System.Windows.Forms.TextBox > このイベント設定ですべてをまかなっているとかですかね。 ソースと言うか、キーワード(予約語)ですから。 確かにコンパイラ内部では AddHandler とかに展開されますけど。 > MyBase.OnTextChangedで呼ばれていく先にFormと紐付けられる予定の関数が > 潜んでいるということであってますでしょうか? なんか違う……。 TextBox の TextChanged に、Form は呼び出してほしいメソッドを登録する。 TextBox かその基底クラスの OnTextChanged が TextChanged に登録されたメソッドを呼び出す。 > この答えを聞いて、考えをまとめると、やはりUserControl内では > OnTextChanged等のOnの付く関数をオーバーライドして修正します。 > さらに基底関数は呼ばないようにします。このコントロールを使われた先で > 何かやられると困りそうなので。 いやいやいや、OnHogehoge は呼び出してあげてください。リファレンスにも基底クラスのを呼び出 せと書いてあります。 使用者は文字列が変更されたときに何かしたいから TextChanged を利用するのに、それが使えない のでは二進も三進も行きません。 何かやって困るのはその利用者だけですが、そもそもできないのでは何かやっても困らない利用者 全員に影響がでます。 |