我想要一个列表框来显示所有来自班级M5等的学生,但它只显示一个学生。列表框显示所有学生
另一个问题是,当我从列表框中随机选择一个名称时,学生的信息将显示在右侧,但是当我单击学生时,出现错误nullreferenceexception未处理。
这里是我的代码:
private void loadToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
fileToolStripMenuItem.Text = openFileDialog1.FileName;
StreamReader sr = new StreamReader(openFileDialog1.FileName);
string line = "";
while ((line = sr.ReadLine()) != null)
{
string name = "";
string gender = "";
char[] selected = line.ToCharArray();
for (int i = 0; i < selected.Length; i++)
{
if (selected[i] != '(')
{
name += selected[i];
}
else if (selected[i] == '(')
{
gender += selected[i + 1];
break;
}
}
Student student = new Student();
student.setName(name);
student.setGender(gender);
studentListBox.Items.Clear();
birthdatePicker.Value = DateTime.Now;
studentlist.addStudent(student);
studentListBox.Items.Add(student);
}
sr.Close();
private void studentListBox_SelectedIndexChanged(object sender, EventArgs e)
{
string name = studentListBox.SelectedItem.ToString();
Student s = studentlist.findStudent(name);
s.setName(studentNameTB.Text); <---Error (nullreferenceexception was unhandled)
s.setGender(genderTB.Text);
s.setBirthDate(birthdatePicker.Value);
}
对于问题的第二部分。显示findStudent的代码并显示学生类如何覆盖ToString()方法以在列表框中显示学生名称 – Steve