1

私はC#の初心者で、オブジェクトをに挿入しようとしているCheckedListBoxので、この挿入されたアイテムにはチェックリスト内にタイトルがあります(私のオブジェクトには、CheckedListBoxに表示したい文字列フィールドが含まれています)。たとえば、これは私のクラスです。

 public class InfoLayer
{
    private string LayerName;
    private List<GeoInfo> GeoInfos;
    public InfoLayer()
    {
        LayerName = "New Empty Layer";
        GeoInfos = new List<GeoInfo>();
    }
    public InfoLayer(string LayerName)
    {
        this.LayerName = LayerName;
        GeoInfos = new List<GeoInfo>();
    }
    public InfoLayer(string LayerName,List<GeoInfo> GeoInfosToClone):this(LayerName)
    {
        foreach (GeoInfo item in GeoInfosToClone)
        { 
             GeoInfos.Add((GeoInfo)((ICloneable)item).Clone());
        }
    }
    public GeoInfo SearchElement(long id)
    {
        foreach (GeoInfo info in GeoInfos) // foreach loop running on the list 
        {
            if (info.INFOID == id) 
                return info; // return the item if we found it
        }
        return null;
    }

    public GeoInfo SearchElement(string name)
    {
        foreach (GeoInfo info in GeoInfos)
        {
            if (info.INFONAME.CompareTo(name)==0)
                return info;
        }
        return null;
    }

    public override string ToString()
    {
        string toReturn = "";
        for (int i = 0; i < GeoInfos.Count; i++) // for loop running on the list 
        {
            toReturn += String.Format("{0}\n",GeoInfos[i].ToString()); // piping another geoinfo 
        }
        return toReturn;
    }

    public string LAYERNAME{get{return LayerName;}}

私のクラスには、彼女の中にtostringオーバーライドも含まれています(私が表示したいものではありません)

よろしくお願いします。

4

3 に答える 3

1

オブジェクトがインスタンスであるクラスであるクラスのToString()をオーバーライドします。

編集:

の内容を表示したくないToString()。表示したいですLayerNameよね?おそらく、代わりにデータバインディングを使用して値を表示する必要があります。次にDisplayMember、新しいLAYERNAMEプロパティに設定できます。

于 2010-11-22T19:13:37.320 に答える
0

((MyObjectType)checkedListBox1.Items(index))。Name="何でも"

変更するオブジェクトのインデックスを知っている必要があります。

このプロパティ値ToStringを返すように、クラスのメソッドをオーバーライドする必要があります。Name

public overrides string ToString() {
    return Name;
}

に追加すると、その名前が表示されますCheckedListbox

于 2010-11-22T19:10:30.033 に答える
0

私はこれがあなたが達成しようとしていることだと信じています:

checkedListBox1.Items.Add(yourObject.stringField);
于 2010-11-22T19:05:00.973 に答える