将学生姓名,姓氏和年龄从列表添加到ListBox

我有3个textboxes ,我可以输入NameSurnameAge 。 按下button1后,它会生成一个具有这些属性的新学生。

如何将具有所有3个属性的学生添加到ListBox ? 看起来像这样:

/#/ – 姓名 – 姓氏 – 年龄
1 – 约翰 – 史密斯 – 21
2 – 托尼 – 霍克 – 22

我的代码目前:

 public class Students { public string Name; public string Surname; public int Age; } public partial class Form1 : Form { List group = new List(); public Form1() { InitializeComponent(); } private void label1_Click(object sender, EventArgs e) { Students student = new Students(); student.Name = textBox1.Text; student.Surname = textBox2.Text; student.Age = Convert.ToInt32(textBox3.Text); group.Add(student); } } 

试试这个:

 listBox1.DataSource = group; listBox1.DisplayMember = "Name"; //Set the DisplayMember property to avoid call ToString() 

或这个:

 foreach (var item in group) { listBox1.Items.Add(item); } listBox1.DisplayMember = "Name"; 

您也应该将类中的字段更改为以下属性:

 public class Students { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } public override string ToString() { return string.Format("{0} -- {1} -- {2}", Name, Surname, Age); } } 

编辑:我想你想要这个(按下按钮它会添加到ListBox ,你不再需要group列表。只是不要忘记覆盖类中的ToString ):

 private void button1_Click(object sender, EventArgs e) { Students student = new Students(); student.Name = textBox4.Text; student.Surname = textBox5.Text; student.Age = Convert.ToInt32(textBox6.Text); listBox1.Items.Add(student); } 

如果适用,您还应该有一个ID(除非您的规范另有说明。)包含1,2等。为了实际显示信息,您可以覆盖ToString()方法,在列表框中以您想要的方式显示它。

 public class Student { public string Name { get; set; } public string Surname { get; set; } public int Age { get; set; } public int ID { get; set; } public override string ToString() { return string.Format("{0} -- {1} -- {2} -- {3}", ID, Name, Surname, Age); } } 

并将ListBox上的DataSource设置为“group”。