用于显示所有学生的列表框

本文关键字:列表 显示 用于 | 更新日期: 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)方法。