将信息显示到2个不同的列表框 - 使用树

时间:2013-03-20 16:04:55

标签: c# forms list linked-list

我目前正在用C#设计一个表单,我试图将信息显示在两个单独的文本框中。正如您在单击“添加艺术家”时所看到的,它将艺术家和艺术家数量添加到同一个框中。我不希望它这样做。

我知道行'listBox2.Items.Add(artist);'是造成这种情况,但是我不知道要改变它以便它只显示成员数。我的艺术家课程如下:

我认为我需要在第一个return语句中分隔名称和成员,以便我可以使用listBox2.Items.Add(artist.members)分别显示它们;或类似的形式类,但我不确定。

任何帮助表示赞赏!谢谢:))

3 个答案:

答案 0 :(得分:4)

看起来像是在创建

List<string> ListBoxItems = new List<string>();,您将保存您的艺术家ToString返回的内容,即:

(name + members);

您可以执行以下几项操作,您可以将ListBoxItems视为List<Artist>,然后您可以使用以下内容构建列表:

foreach (string artist in ListBoxItems)
{
    listBox1.Items.Add(artist.Name);
    listBox2.Items.Add(artist.Members);
}

或者,您可以制作2个列表。说ListBoxNamesListBoxMembers,并用各自的字段填充它们。我个人更喜欢第一种方法。

或者,如果ArtistTree暗示IEnumerable(高亮显示它并按f12进行检查),那么你可以从中拉出

foreach (Artist artist in ArtistTree)
{
    listBox1.Items.Add(artist.Name);
    listBox2.Items.Add(artist.Members);
}

答案 1 :(得分:2)

listBox2.Items.Add(artist.Members);

答案 2 :(得分:2)

您需要将列表框的DisplayMember属性设置为要显示的Artist类的公共属性。

您可以在表单中包含以下代码以实现您的目标:

listBox1.DisplayMember = "Name";
listBox2.DisplayMember = "Members";