用于显示所有学生的列表框
本文关键字:列表 显示 用于 | 更新日期: 2023-09-27 18:31:45
我想要一个列表框来显示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);
}
对于"仅限一名学生"的问题,请从 while 循环中删除此行并将其放在它之前:
studentListBox.Items.Clear();
问题是您每次都会在添加新学生之前删除所有学生。
studentlist.findStudent(name);
是否有可能返回null
?如果这是问题所在,那么您应该看到您的studentlist.findStudent(name)
方法。