【问题标题】:Passing a class value from listbox in form1 to textbox in form2将类值从form1中的列表框传递到form2中的文本框
【发布时间】:2014-05-03 01:32:51
【问题描述】:

我刚刚得到了这个,但我没有做正确的事情。我正在尝试将值从 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; }
}

【问题讨论】:

  • ShowDialog 是一个模态调用。您的代码将停在那里,直到您关闭对话框。之前设置值,它可能会正常工作。

标签: c# winforms properties textbox listbox


【解决方案1】:

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

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

【讨论】:

  • 你们太棒了,成功了。这是网络上最好的网站。
【解决方案2】:
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;

}

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 2014-01-02
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多