我正在尝试开发一个应用程序,在该应用程序上我有一个MDIParent
和几个MDIchilds
. 我想在 my 上创建一个全局变量MDIParent
,并且我希望该变量可以从其子级访问。
我怎样才能做到这一点??
我正在尝试开发一个应用程序,在该应用程序上我有一个MDIParent
和几个MDIchilds
. 我想在 my 上创建一个全局变量MDIParent
,并且我希望该变量可以从其子级访问。
我怎样才能做到这一点??
如果 Matthew Watson 的答案不是您想要的……
如果您只是希望特定 MDI 父窗体的子窗体可以访问您的“全局”变量,那么只需在其上使用常规实例属性。孩子们将能够通过child.MdiParent.MyVariable
(在转换MdiParent
为适当的类型之后)访问它。例如:
class ParentForm
{
public int MyVariable
{
return 1;
}
}
class ChildForm
{
public void MyMethod()
{
var parent = this.MdiParent as ParentForm;
foo = parent.MyVariable;
}
}
快速说明:通常最好尽可能避免使用“全局”变量(即静态字段/属性)。将程序状态的所有不同部分限制在适当的上下文中以减少耦合。见得墨忒耳法则。
C# 中的全局变量实际上是一个静态字段或属性。
所以只需向 MDIParent 添加一个公共静态属性:
public static int MyGlobalInt
{
get
{
return 42;
}
}
这将在 MDIParent 的所有实例之间共享。如果这不是你的意思,那么它不是你想要的全局。