1

我是 C# 的新手,我正在尝试将一个对象插入到 aCheckedListBox中,因此这个插入的项目将在选中的列表内有一个标题(我的对象在其中包含一个字符串字段,我想在 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,不是吗?也许您应该改为使用 Databinding 显示值。然后你可以设置DisplayMember你的新LAYERNAME属性。

于 2010-11-22T19:13:37.320 回答
0

我相信这就是您要实现的目标:

checkedListBox1.Items.Add(yourObject.stringField);
于 2010-11-22T19:05:00.973 回答
0

((MyObjectType)checkedListBox1.Items(index)).Name = "whatever"

您必须知道要更改的对象的索引。

您只需要覆盖ToString您的类中的方法,以便它返回此Name属性值。

public overrides string ToString() {
    return Name;
}

然后,它会在添加到您的CheckedListbox.

于 2010-11-22T19:10:30.033 回答