Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Winforms-从子窗体更改父窗体的名称_C#_Winforms - Fatal编程技术网

C# Winforms-从子窗体更改父窗体的名称

C# Winforms-从子窗体更改父窗体的名称,c#,winforms,C#,Winforms,我想根据用户对其中一个子表单的输入更改MDI父表单的名称(文本)标题 我尝试过以下代码: frmMain main = (frmMain)this.MdiParent; main.Text = "New Name"; 但是我得到一个对象引用未设置错误。可能是因为您试图在子窗体的构造函数中执行此操作。在构造函数完成之前,无法设置MdiParent属性 在子窗体中重载OnLoad方法并在那里更改父窗体的Text属性 this.MdiParent.Text="New Name"; 但我想你是想这么

我想根据用户对其中一个子表单的输入更改MDI父表单的名称(文本)标题

我尝试过以下代码:

frmMain main = (frmMain)this.MdiParent;
main.Text = "New Name";

但是我得到一个对象引用未设置错误。

可能是因为您试图在子窗体的构造函数中执行此操作。在构造函数完成之前,无法设置MdiParent属性

在子窗体中重载OnLoad方法并在那里更改父窗体的Text属性

this.MdiParent.Text="New Name";
但我想你是想这么做

Form child = new Form();
String formText = "Child ";
child.Text = formText;
child.MdiParent = this;

您确定表单实际上是
frmMain
的子级吗?在分配前,检查
this.mdipparent
中的
null
。您何时尝试更改父窗体?是在表格关闭时吗?当输入控件中的值发生更改时?鉴于他似乎希望根据用户输入设置文本,代码似乎不太可能出现在构造函数中。上述试图更改主窗体名称的代码出现在子窗体上按钮的OnClick事件中Form@PJW那么Anonymous可能是对的,创建子窗体时未设置MdiParent属性。