- - PR -
Webカスタムコントロールの作成について
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-16 16:38
初めて投稿させていただきますhidetoと申します。
よろしくお願いします。 早速ですが、現在DropDownListを継承したMyDropDownListを作成しております。 以下がその単純なソースです。 Option Explicit On '変数の宣言を強制する Option Strict On '暗黙な型変換を行わない Imports System Imports System.ComponentModel Imports System.Web.UI Imports System.Web.UI.WebControls <DefaultProperty("Text"), ToolboxData("<{0}:MyDropDownList0004 runat=server></{0}:MyDropDownList0004>")> Public Class MyDropDownList0004 Inherits System.Web.UI.WebControls.DropDownList Public Sub New() Me.Items.Add(CStr(Date.Now)) End Sub End Class 本当に単純な派生クラスですが、不思議な事に、このコントロールを使用し IDEにて何らかのプロパティを変更し、実行するとItemsリストが 増加していきます。 プロパティを変更せずに実行すると、問題ありません。 何か根本的に作り方が間違っているのでしょうか? | ||||||||
|
投稿日時: 2005-06-16 17:42
hidetoさん、こんばんは。
てことは、プロパティを変更するたびにコンストラクタ↓が呼ばれているらしい、という事に思い当たりますよね。
で、この手のコードはどこに書くかといえば、CreateChildControls メソッドをオーバーライドして、その中に書けば良いんじゃないかと思います。 詳しくは、MSDN ライブラリを調べてみて下さい。 | ||||||||
|
投稿日時: 2005-06-16 18:16
きくちゃん 様
早々のレスありがとうございます。 おかげさまでうまく動作しました。 しかしながら、画面設計時にはこの情報は反映されないようですね(^^ まだ、CreateChildControlsで書く場合とコンストラクタ(New)内で 書く場合との違いがよくわかりませんが、これから勉強させて頂こうと思います。 本当に有難うございました。 | ||||||||
1
