2017-05-03 4 views
1

TextBoxを継承するカスタムコンポーネントを作成しました。私はコンポーネントに "Watermark"というプロパティを与えました。これらのコンポーネントの1つをツールボックスからドラッグした後、プロパティウィンドウでアクセスできるプロパティ。ただし、ウォーターマークに値を割り当てると、プログラムを起動したときに値が継承されません。Visual Studioのカスタムコンポーネントのプロパティ

[Browsable(true)] 
[Category("Extended Properties")] 
[Description("Set TextBox's watermark")] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] 
public string Watermark 
{ 
    get; set; 
} 

public TextBoxWithWatermark() 
{ 
    InitializeComponent(); 
    InitializeWatermark(); 
} 

public TextBoxWithWatermark(IContainer container) 
{ 
    container.Add(this); 
    InitializeComponent(); 
    InitializeWatermark(); 
} 

private void InitializeWatermark() 
{ 
    Console.WriteLine("Watermark: " + Watermark); 
    Text = Watermark; 
} 

コンソール#WriteLineは何も関係なくその空白を主張します。私が紛失しているものはありますか?

+0

アサイン' Text'。 ** Set ** –

+0

テキストをウォーターマークに設定することで、私が求めていることがどうなるか分かりません。 :/私はどのように "透かし"は、プロパティウィンドウから割り当てられている任意の値を運ぶことを把握しようとしています。 –

+0

'get {return watermark;} set(value){テキスト=値;ウォーターマーク=値} '、代わりに' get; set; ' –

答えて

1

コメントのLei Yangに感謝します。

私はこれを変更しなければならなかった。..

private string watermark; 
    public string Watermark 
    { 
     get 
     { 
      return watermark; 
     } 
     set 
     { 
      Text = value; 
      watermark = value; 
     } 
    } 
Watermark` `で
関連する問題