- - PR -
自作コントロールとVS.NETのプロパティグリッドのenum型
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-12-01 18:07
自作コントロール(TextBoxを継承)を作成したのですがenum型のプロパティだけ、
変更した値が、次回そのプロジェクトを開きなおした時にenum定義の最初の項目に 戻ってしまうのです。 ちなみにフォーム側の生成されたソースのInitializeComponent()の、自作コントロールの 箇所には正常にenum型の変更された記述があるのですがVS.NETのコントロールの プロパティにはこの値が反映されません。 また、フォームにこのコントロールを複数貼り付けたときに全部が戻ってしまったり、 全部が正常に表示されたり、一部戻ったり、フォームによってプロジェクトを 開きなおしたときの状態がまちまちなのです。不思議です。 自作コントロールを作成するときにenum型のプロパティは特別なアトリビュート とかが必要なのでしょうか?ちなみにbool型の項目は正常です。 |
|
投稿日時: 2003-12-01 18:38
InitializeComponentに変更後の記述がされているのであれば、問題ないはずです。
また、特別な属性が必要という事もないはずです。 私自身も、コントロールを作成しenumのプロパティをよく利用しますが、今回のような現象は経験がありません。 何か、別の原因があると思います。 よろしければ、ソースを公開してもらえれば、何かわかると思います。 |
|
投稿日時: 2003-12-01 19:19
ないとー!様 zucciです。
ソース(抜粋)です。 public class IzmTextBox : System.Windows.Forms.TextBox { public enum enTextType { None, Number, Zenkaku, Hankaku, YYYYMMDD, ZipCode, TelNo, WebUrl, EmailAddress }; private IzmTextBox.enTextType v_TextType; [Description("Textの入力タイプ。"),Category("ISYS拡張"),DefaultValue(IzmTextBox.enTextType.None)] public IzmTextBox.enTextType TextType { get { return v_TextType; } set { v_TextType = value; } } 特に、変なことはしていないと思うんですけど..... ちなみに、自作コントロールのコンストラクタの部分( IzmTextBox() )では、 何もしてなくInitializeComponent();の下には独自の初期化処理などを入れていません。 以上です。よろしくお願いいたします。 |
|
投稿日時: 2003-12-11 10:02
返信が遅くなりました。m(_ _)m
ソースをコピーして試してみましたが、全く問題ありませんでした。 TextTypeを変更すると、ちゃんとソース上に反映しますし、ソースビュー、デザイナービューを開きなおしても、プロジェクトを開きなおしても、変更後の内容が維持されました。 と、いうより、ソースを見ましたが、全く問題なく思えます。 他の部分に原因があるのでは・・・!? |
|
投稿日時: 2003-12-11 15:51
検証ありがとうございます。
自分も、いろいろな箇所をコメントアウトしたりして 調査しているのですが、まだ、うまくいかない状態です。 ちょっと、最初からユーザーコントロールを作り直そうと 思います。 お手数かけました。ありがとうございした。 |
1