c#中的mdi表单弹出窗口错误
本文关键字:窗口 错误 表单 中的 mdi | 更新日期: 2023-09-27 18:11:40
我有一个单独工作的表单,但是我想将它添加到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
是一个独立的形式;但如果我使它成为一个子形式,我得到这个错误,当我点击OK上的form2
返回到form1
。
消息=无法强制转换类型为"Partsbuddy2._0"的对象。菜单'输入'Partsbuddy2._0.Form1'.
this。所有者显然不是表单,而是菜单。显然,当你切换到MDI
时,会发生一件奇怪的事情不使用Owner
属性,您可以将自己的属性添加到Form2
,其中包含对所有者表单的引用:
public Form OwnerForm {get; set;}
,然后创建新的Form2
实例时,使用:
Form2 fm = new Form2() { OwnerForm = this };
,在Form2
中,你用它来访问Form1
:
Form1 fm2 = (Form1)this.OwnerForm;