繁体   English   中英

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

[英]How to populate list object from 2nd form

我需要添加一个已从表单创建的对象,以使用该对象已经设置好的对象填充列表框,而其他所有方法都可以正常工作,但是我进行了大量研究,无法弄清楚为什么我的列表框不会填充。

我尝试进行研究以找到如何将数据和对象传输到第二种形式。 我已经尝试过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

相反,我什么也没得到

也可以在我的主窗体上工作,我只是不知道如何将该对象发送到主窗体到列表框

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM