- - PR -
ユーザーコントロールの作り方
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-09 13:33
OnTextChangedメソッドについては解りました。
C++みたいにメッセージハンドラとして存在していたのですね。 さて、OnTextChangedメソッドを使ってイベントは取得できたのですが、 肝心なのは、OnTextChangedメソッド時にTextの情報が取得できないのです。 <System.ComponentModel.Description("コントロール内のテキストです。")> _ Shadows Property Text() As String Get Return TextBox.Text End Get Set(ByVal Value As String) TextBox.Text = Value End Set End Property こんな感じでTextプロパティを拡張してみたのですが、実際に取得できるのは、 実行前のText情報です。 どうやったら、取得したり、戻したりできるのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2004-06-09 13:54
すいません。できました。
プロパティ設定など必要なかったのですね。 MyBaseを使って呼び出し元(基本クラス)の情報を取得するのですね。 MyBaseの意味がなんとなく解りました。 ヘルプを見てMyBaseの意味をもっと理解していきたいと思います。 みなさま、ありがとうございました。 [ メッセージ編集済み 編集者: ポポロン 編集日時 2004-06-09 13:55 ] | ||||
|
投稿日時: 2004-06-09 14:02
Hasumiです。
>OnTextChangedメソッド時にTextの情報が取得できないのです。 Me.Textで取得できます。 MSDNに使用例が出ています。 | ||||
|
投稿日時: 2004-06-09 14:04
みゅうです。 えっと、ユーザコントロール側(多分DLLにしてるんですよね?)のコードエディタの上部に 二つのコンボボックスがありますよね? 最初に左のコンボの中から(Overrides)を選択します。次に右のコンボの中からOnTextChangedを選択して下さい。そうすると、自動的に記述欄(Protected 〜 EndSub)が生成されます。 そこに、Hasumiさんがおっしゃった様に記述してみてください。 ※MyBase.OnTextChanged(e) は必ず書いてくださいね。 これをビルドして出来たDLLを参照しているプロジェクト(親フォーム等)に参照し替えればTextChangedイベントが動作する拡張テキストボックスになりますよ。 あら、もう解決してたんですね^^;すみません [ メッセージ編集済み 編集者: みゅう 編集日時 2004-06-09 14:05 ] | ||||
|
投稿日時: 2004-06-09 15:07
みゅうさん、返信ありがとうございます。
最初に左のコンボの中から(Overrides)を選択します。・・・・・ この機能、便利ですね。C++のクラスウィザードみたいですね^^ ※MyBase.OnTextChanged(e)…この一文、重要ですね。 これが無いと基本クラス側からのイベントが使えませんからね… Hasumiさん、わざわざ、参考サイトを教えていただきありがとうございます。 なるほど、[Me]は自分…つまり、ユーザーコントロールを指していたのですね。てっきり、VBではフォームを表すものだと勘違いしていました。^^; ふむ…基本クラス(Me = MyBase = 親)という訳ですね。この辺り、理解出来ていない人はかなりいると思います。 本当にありがとうございました。おかげで拡張TextBoxが出来そうです。 | ||||
|
投稿日時: 2004-06-09 15:57
Hasumiです。
えーと、MSDNでは Me:コードが実行されているクラスまたは構造体の特定のインスタンスを参照できます。 MyBase:クラスの現在のインスタンスの基本クラスを参照するオブジェクト変数と同じように動作するキーワードです。 となっていますので、
ではありません。 詳細はこちら(Me)とこちら(MyBase)を参考にしてください。 | ||||
|
投稿日時: 2004-06-09 16:32
Hasumiさん、どうもです。
なんとなく解ってきましたが、まだモヤがかかってます。 ですが、何回も読んで理解しようと思います。 わざわざ、ありがとうございます。 |