2008/02/12(Tue) 00:42:14 編集(投稿者)
(変更履歴)
1.クラスMyDataに、override ToString()を追加。
(ここまで変更履歴)
はじめまして、引っ込んだ(略)と申します。
お答えいたします。
以下のコードで試してみてください。
public class TextBoxEx : TextBox
{
private List<MyData> m_samevisiblechangeobject=new List<MyData>();
// 公開するプロパティ
[Description("同時にVisibleを切り替えるControl達を指定します。"),Category("拡張")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<MyData> SameVisibleChangeObject
{
get{return this.m_samevisiblechangeobject;}
}
// 動作を確認するためだけの関数
public void disp()
{
foreach (MyData md in this.m_samevisiblechangeobject)
{
if (md != null && md.TargetControl != null)
{
Console.WriteLine(md.TargetControl.Name);
}
else
{
Console.WriteLine("null Control");
}
}
}
// コレクションエディタ用に用意したクラス
[DefaultProperty("TargetControl")]
public class MyData
{
private Control m_control;
public Control TargetControl
{
get { return this.m_control; }
set { this.m_control = value; }
}
// ↓[追記1]このメソッドを追加
public override string ToString()
{
if (this.m_control == null)
{ return "null Control"; }
else if (this.m_control.Name != "")
{ return this.m_control.Name; }
else
{ return this.m_control.GetType().Name; }
//End If
}
}
}
以上です。