|
分類:[.NET 全般]
2012/08/22(Wed) 09:07:14 編集(投稿者) 2012/08/21(Tue) 15:40:54 編集(投稿者)
お世話になっております。 Vitual Studio 2010にてTextBoxを継承したコントロールを作成しています。 しかし、デザイナで別のformに張り付けた途端、存在しないリソースファイルのパスと思われるコードが生成されたり、 DefaultValue属性に指定した値が反映されなかったりして困っております。
要因は2点と考えており、1つは、単純にDefaultValueの使い方が違っていること 1つは、プロジェクトファイルが不正?ではないか。 ということです、申し訳ないですが、以下実現可能か、ご鞭撻いただけませんでしょうか。
▼環境等▼ 開発環境:Visual Studio Team Edition 利用言語:FrameWork 4.0 (C#)
▼やりたいこと▼ ■継承コントロールにプロパティを指定し、その初期値をデザイナ上で反映させる。 ■プロパティは、プリミティブ型として指定し、その実態は内部で保持しているオブジェクトクラスのプロパティを操作する
▼ソースコード▼ ***************継承コントロールクラス*************** ※魔界の仮面弁士 様からのご指摘があり、コード修正しています。 namespace TextBoxSample { public partial class TextBoxEX : TextBox { public TextBoxEX() { InitializeComponent(); }
private Label _Label = new Label(); /// <summary> /// このコントロールのキャプションオブジェクトを指定または指定します /// </summary> public Label Label { get { return this._Label; } set { this._Label = value; } }
/// <summary> /// テキストボックスのキャプションオブジェクトを指定または指定します /// </summary> [Category( "その他" )] [DefaultValue( "でふぉるとばりゅ" )] [Description( "テキストボックスのキャプションオブジェクトを指定または指定します" )] [DesignerSerializationVisibility( DesignerSerializationVisibility.Visible )] public string Caption { get { return this.Label.Text; } set { this.Label.Text = value; } } } }
***************デザイナ上で張り付けるとこうなる***************
// // textBoxEX1 // this.textBoxEX1.Caption = ""; this.textBoxEX1.Location = new System.Drawing.Point(242, 70); this.textBoxEX1.Name = "textBoxEX1"; this.textBoxEX1.Size = new System.Drawing.Size(100, 19); this.textBoxEX1.TabIndex = 2;
**************************************************************
▼悩んでいること1▼
this.textBoxEX1.Caption = ""; となり、Captionに"でふぉるとばりゅ"が反映されない。 DefaultValueAttribute Constructor ( String )を使う事が誤り? DefaultValueAttribute Constructor ( Type, String )を使うべき? ⇒利用方法のサンプルを見つけることができず、どういった指定かで詰まる
▼悩んでいること2▼ 上記継承コントロールは、サンプルプロジェクト1と、本番プロジェクト1に同じコードを 作成しています。サンプルプロジェクト1だと、
this.textBoxEX1.Caption = ""; となるのですが、本番プロジェクトだと this.txtKensuEnd.Caption = global::sampleApp.app.resource.sample1.sampleValue1; となり、global::sampleApp.app.resource.sample1.sampleValue1; というリソースは未存在の状態で、必ずコンパイルエラーになります。
ソリューションが壊れているのか? それとも、作成したプロパティの指定方法が悪いのか見当中。
恐れ入りますが、属性の指定方法や、こういうキーワードで検索したらいいとかあれば 教えていただけませんでしょうか。
|