【问题标题】:Winforms - Changing name of MDIParent Form from Child FormWinforms - 从子表单更改 MDIParent 表单的名称
【发布时间】:2012-09-05 15:16:23
【问题描述】:

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

我试过这段代码:

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

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

【问题讨论】:

  • 您确定表单实际上是frmMain 的子级吗?在分配之前检查this.MdiParent 以获得null
  • 您何时尝试更改父表单?是在表格关闭的时候吗?当输入控件中的值发生变化时?

标签: c# winforms


【解决方案1】:
this.MdiParent.Text="New Name";

但我认为你正在尝试这样做

Form child = new Form();
String formText = "Child ";
child.Text = formText;
child.MdiParent = this;
【解决方案2】:

可能是因为您试图在子窗体的构造函数中这样做。在构造函数完成之前,无法设置 MdiParent 属性。

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

【讨论】:

  • 鉴于他似乎想根据用户输入设置文本,代码似乎不太可能在构造函数中。
  • 以上代码试图更改主窗体名称是在子窗体上的按钮的 OnClick 事件中
  • @PJW 那么 Anon ymous 可能是正确的,您在创建子 Form 时没有设置 MdiParent 属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 2013-02-14
相关资源
最近更新 更多