我正在尝试访问父表单功能(方法)。即使使用 static 关键字,它也不起作用。
父窗体是类型 (MDI) 并具有正常的子窗体。这是 C# 应用程序。我正在尝试使用这种方式来访问方法,但没有提前!
this.MdiParent
请帮我 !
如果你声明了静态方法,那么你应该通过父表单的类名来调用它们:
YourParentFormType.YourStaticMethod();
如果要使用实例方法,则应将它们声明为public
并通过强制转换 MDI 父引用调用:
((YourParentFormType)this.MdiParent).YourInstanceMethod();
您必须转换this.MdiParent
为正确的类型。
如果您的父表单是 type MyForm
,请使用
((MyForm)this.MdiParent).MyMethod();
静态方法也一样:通过正确的类型调用它们
MyForm.MyStaticMethod();
this.MdiParent 返回 Form 类型的实例
这意味着它只会显示在 Form 类定义中定义的函数。
为了达到其他方法,您需要将其转换为实现表单的类类型,例如
((MyForm)Form).MyFunction()
静态方法可以使用Type.Method()
.
如果要访问实例方法,则需要将其MdiParent
转换为正确的类型。
MyParentType parent = (MyParentType)this.MdiParent;
parent.SomeMethod();
MdiParent
创建表单时需要设置表单的属性:
// Make the new form a child form.
child.MdiParent = this;
// Display the child form.
child.Show();
然后您可以访问父表单。如果您只想要 Form 属性,则不需要强制转换:
Form parent = this.MdIParent;
string parentTitle = parent.Text;
如果您需要访问 cusotm 属性/方法,只需将其转换为正确的类型:
ParentForm parent = this.MdIParent as ParentForm; // using your own type name of course
string title = parent.MyStringProperty;