2

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

我知道'listBox2.Items.Add(artist);'这一行 导致这种情况,但是我不知道将其更改为什么,以便仅显示成员数。我的艺术家课程如下:

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

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

4

3 回答 3

4

它看起来像当你创建

List<string> ListBoxItems = new List<string>();,您正在保存艺术家的ToString回报,即:

(name + members);

您可以做几件事,您可以将其暗示ListBoxItemsList<Artist>,然后您可以使用以下内容构建您的列表:

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

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

或者,如果ArtistTree暗示IEnumerable(突出显示并按 f12 进行检查),则可以从中提取

foreach (Artist artist in ArtistTree)
{
    listBox1.Items.Add(artist.Name);
    listBox2.Items.Add(artist.Members);
}
于 2013-03-20T16:08:57.500 回答
2

listBox2.Items.Add(艺术家.成员);

于 2013-03-20T16:08:30.253 回答
2

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

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

listBox1.DisplayMember = "Name";
listBox2.DisplayMember = "Members";
于 2013-03-20T16:09:52.513 回答