2014-05-03 38 views
0

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

形式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; } 
} 
+0

ShowDialog是一种模态调用。你的代码将停止在那里,直到你关闭对话框。之前设置值,它可能工作得很好。 –

回答

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();  
} 
+0

你们真棒,工作。这是网上最好的网站。 – user3594691

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; 

} 
相关问题