将类值从form1中的列表框传递到form2中的文本框

时间:2014-05-03 01:32:51

标签: c# winforms properties textbox listbox

我只是得到了这个,但我没有做正确的事情。我试图将值从form1传递给form2。在form2上,我设置了一个属性,允许访问其中一个文本框。在form1上,我设置为打开form2的实例并将值从列表框中的对象传递给form2的文本框。看起来我的设置几乎是正确的,因为我通过在messagebox.show中发布对象值来测试它,它显示了我计划的不同对象值。出于某种原因,虽然当我实际运行时,form2将打开,但它不会设置我传递给表单中文本框的值,它只是一个空白表单。我没有错误,但我认为它与未直接传递给我的form2新实例的数据有关。我希望我解释得很好。任何帮助表示赞赏。

表单1

private void propertiesToolStripMenuItem_Click(object sender, EventArgs e)
{
    frmProperties editProperties = new frmProperties();
    editProperties.ShowDialog();

    Employee person = (Employee)lstBoxEmployees.Items[lstBoxEmployees.SelectedIndex];
    editProperties.TextFirstName = person.EmployeeFirstName;
}

表单2

public string TextFirstName
{
    get { return txtFirstName.Text; }
    set { txtFirstName.Text = value; }
}

2 个答案:

答案 0 :(得分:0)

private void propertiesToolStripMenuItem_Click(object sender, EventArgs e)
{
    frmProperties editProperties = new frmProperties();
    editProperties.ShowDialog();

    Employee person = new   Employee ();
person.EmployeeFirstName = lstBoxEmployees.Items[lstBoxEmployees.SelectedIndex];
    editProperties.TextFirstName = person.EmployeeFirstName;

}

答案 1 :(得分:0)

您必须在显示对话框之前设置文本框。

private void propertiesToolStripMenuItem_Click(object sender, EventArgs e)
{
    frmProperties editProperties = new frmProperties();
    Employee person =   (Employee)lstBoxEmployees.Items[lstBoxEmployees.SelectedIndex];
    editProperties.TextFirstName = person.EmployeeFirstName;
    editProperties.ShowDialog();    
}