在我的WinForms项目中,我有一个ListBox控件以及多个标签。我还有一个自定义的Person
类,其中的值从文本文件CSV中分配。这个Person
类具有Name, Gender, Weight,
等属性。
我希望发生的是将Person
类中的所有Name
属性添加到ListBox控件中。然后,当用户通过单击ListBox中的他/她来选择此Person
时,标签得到更新的人相应的值。我希望这是有意义的。我已经包括了一个图像的形式,以帮助您更好地了解什么我已经尝试了下面的代码,但是列表框没有更新任何值。
public void Get_Roster()
{
string line;
List<Person> people = new List<Person>();
System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Austin316\Desktop\yourFile.txt");
while ((line = file.ReadLine()) != null)
{
string[] words = line.Split(',');
Person p = new Person(words[0], words[1], words[2], words[3], words[4], words[5], words[6], words[7], words[8], words[9], words[10], words[11]);
foreach (Person b in people)
{
lstRoster.Items.Add(p.Name).ToString();
}
}
file.Close();
}
字符串
2条答案
按热度按时间q35jwt9p1#
你有问题在你的代码填充listbpx控件请参阅此代码可能会帮助你:
字符串
现在,每次从文件中读取一行并创建一个Person对象时,都将该人添加到人员列表和ListBox中。这应该会正确地使用文件中的人员名称填充ListBox。
要处理选择事件并更新标签,可以使用ListBox的SelectedIndexChanged事件:
型
将YourForm替换为表单类的实际名称。
qoefvg9y2#
创建一个列表并将每个人添加到列表中,然后将列表设置为ListBox的DataSource属性,而不是在循环中添加每个项。
若要显示Name属性,请添加如下所示的.ToString,它将成为ListBox的DisplayMember。
字符串
模拟加载数据和将name属性绑定到标签的数据。根据需要继续添加其他标签。
型
如果您需要获取所选项目,请使用以下命令
型