gpt4 book ai didi

c# - 弹出窗口在 C# 中的 mdi 窗体上给出错误

转载 作者:行者123 更新时间:2023-11-30 20:58:09 26 4
gpt4 key购买 nike

我有一个单独运行良好的表单,但我想将它添加到 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 时,我会收到此错误。

Message=Unable to cast object of type 'Partsbuddy2._0.Menu' to type 'Partsbuddy2._0.Form1'.

最佳答案

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

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

public Form OwnerForm {get; set;}

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

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

Form2 中,您使用它来访问 Form1:

Form1 fm2 = (Form1)this.OwnerForm;

关于c# - 弹出窗口在 C# 中的 mdi 窗体上给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16311303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com