如何从第二形式填充列表对象

时间:2019-06-20 04:43:49

标签: c#

我需要添加一个已从表单创建的对象,以使用该对象已经设置的对象填充列表框,而其他所有东西都在工作,但是我做了很多研究,无法弄清楚为什么我的列表框不会填充。

我尝试研究如何找到将数据和对象传输到第二种形式的方法。我已经尝试过Items.Add(TheObject)。和获取/设置。

public partial class AddForm : Form
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string EmpType { get; set; }
        public string Salary { get; set; }


        public AddForm()
        {
            InitializeComponent();
        }

        private void AddForm_Load(object sender, EventArgs e)
        {
            txtfirstName.Text = FirstName;
            txtLastName.Text = LastName;
            cbempType.Text = EmpType;
            txtSalary.Text = Salary;
        }

        private void AddBtn_Click(object sender, EventArgs e)
        {
            if (FirstName!="" || LastName!="" || EmpType!=""|| Salary!="")
            {
                txtfirstName.Text = FirstName;
                txtLastName.Text = LastName;
                cbempType.Text = EmpType;
                txtSalary.Text = Salary;
                Person person = new Person(FirstName, LastName, EmpType, Salary);
                listPerson.Items.Add(person);
            }

        }

预期结果看起来像返回

名字:John姓:Doe雇员类型:薪金薪金:$ 1000000

相反,我什么也没得到

这在我的主表单上也有效,我只是不知道如何将该对象发送到主表单到列表框

2 个答案:

答案 0 :(得分:1)

您需要在AddForm属性中将Person对象声明为公共对象,就像声明FirstName,LastName等一样。

在AddBtn_Click之后,创建该对象,然后关闭“ AddForm窗口”并将对话框结果设置为“确定”。

在主窗体中,使用AddForm.ShowDialog()显示AddForm对话框,并等待DialogResult.OK,然后访问从AddForm创建的Person对象。

关于未显示列表框,您是否在Person类中实现了.ToString()?

答案 1 :(得分:1)

以这种方式显示Person对象“名字:John姓氏:Doe雇员类型:Salary工资:$ 1000000”,如@Bonny所说,您必须实现.ToString()。在您的方案中ToString()的实现以这种方式发生。在您的人员类中添加此功能

 public override string ToString()
 {
     return  "First Name:"+ name + " " + "Last Name:" + LastName+ " " + "Employee type:" + EmpType + "Salary:" + Salary  ;
 }