2

我有一个单独工作的表单,但我想将它添加到mdi父表单中。

问题是我有一个弹出的小表单,询问信息,然后将信息传递给原始表单。

我用它来弹出表单:

Form2 fm = new Form2();

if (fm.ShowDialog(this) == DialogResult.OK)
{
    //do stuff
}

form2我在(弹出表单)的第一行收到错误:

Form1 fm2 = (Form1)this.Owner;

fm2.lbText = this.textBox1.Text;

同样,如果form1是独立形式,这一切都可以正常工作;但是如果我将其设为子表单,当我单击“确定”form2返回到form1.

消息=无法将“Partsbuddy2._0.Menu”类型的对象转换为“Partsbuddy2._0.Form1”类型。

4

1 回答 1

4

this.Owner 显然不是表单而是菜单。显然,当您更改为 MDI 时发生的奇怪事情之一

Owner您可以将自己的属性添加到 中,而不是使用该属性,Form2其中包含对所有者表单的引用:

public Form OwnerForm {get; set;}

然后在创建新Form2实例时,使用:

Form2 fm = new Form2() { OwnerForm = this };

并在Form2您使用它来访问Form1

Form1 fm2 = (Form1)this.OwnerForm;
于 2013-05-01T01:10:10.753 回答