【问题标题】:Tag a Class object containing a list标记包含列表的 Class 对象
【发布时间】:2014-03-15 05:51:39
【问题描述】:

我有一个班级学生

字符串全名; 列表scoresList;

我将一个对象从文本框中编译成:

    private void button2_Click(object sender, EventArgs e)
    {
        this.DialogResult = DialogResult.OK;
        if (IsValidData())
        { 
            List<string> result = txtScores.Text.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries).ToList();
            Student student = new Student(txtName.Text,  result.Select(int.Parse).ToList());
            this.Tag = student;
            this.Close();
        }

在 Form1 方面我有这个:

    private void btnAddNew_Click(object sender, EventArgs e)
    {
        AddNewStudent addStudentForm = new AddNewStudent();
        DialogResult selectedButton = addStudentForm.ShowDialog();
        addStudentForm.Tag = new Student();
        if (selectedButton == DialogResult.OK)
           student = addStudentForm.Tag as Student;
        students.Add(student);

    }

我应该从其他表单的用户信息中获取标签来构造一个学生学生并将其传递回 Form1 并将其添加到我的学生集合中。添加后,它应该像我在加载表单时手动创建的学生一样运行。相反,该列表在运行时为空。我什至可以通过标签移动包含列表的整个对象吗?如果可以的话,我哪里出错了?

【问题讨论】:

  • 你给了我们预期的结果,但实际发生了什么?
  • 标签是空的,因为我用这个“addStudentForm.Tag = new Student();”的空标签覆盖了它

标签: c# class object tags


【解决方案1】:

您正在覆盖 addStudentForm.Tag = new Student(); 中的标记值线

【讨论】:

  • 现在,知道为什么它没有被添加到我的实际收藏中吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 2013-11-09
  • 2023-03-22
  • 2016-10-01
  • 1970-01-01
相关资源
最近更新 更多