我需要添加一个已从表单创建的对象,以使用该对象已经设置的对象填充列表框,而其他所有东西都在工作,但是我做了很多研究,无法弄清楚为什么我的列表框不会填充。
我尝试研究如何找到将数据和对象传输到第二种形式的方法。我已经尝试过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
相反,我什么也没得到
这在我的主表单上也有效,我只是不知道如何将该对象发送到主表单到列表框
答案 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 ;
}