我目前正在用C#设计一个表单,我试图将信息显示在两个单独的文本框中。正如您在单击“添加艺术家”时所看到的,它将艺术家和艺术家数量添加到同一个框中。我不希望它这样做。
我知道行'listBox2.Items.Add(artist);'是造成这种情况,但是我不知道要改变它以便它只显示成员数。我的艺术家课程如下:
我认为我需要在第一个return语句中分隔名称和成员,以便我可以使用listBox2.Items.Add(artist.members)分别显示它们;或类似的形式类,但我不确定。
任何帮助表示赞赏!谢谢:))
答案 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个列表。说ListBoxNames
和ListBoxMembers
,并用各自的字段填充它们。我个人更喜欢第一种方法。
或者,如果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";