public class A { public string strName; private int nAge; private B b1 = new B(); public A() { } public int GetAge() { return nAge; } }public class B { public int c; private A objA; public B(A sender) { objA = sender; //在这里可以用sender调用A的所用公共成员 } public void f() { //在这里可以用objA调用A的所用公共成员 }}
上面有问题,必须在A里创建B的一个实例。public class A { public string strName; private int nAge; private B b1 = new B(); public A() { } public int GetAge() { return nAge; }
private void CreateInstanceOfB() { B objB = new B(this); } }先创建A的一个实例,然后调用CreateInstanceOfB()方法,创建B的一个实例,B的这个实例就可以访问A的公共成员。
{
public string strName;
private int nAge;
private B b1 = new B(); public A()
{
} public int GetAge()
{
return nAge;
}
}public class B
{
public int c;
private A objA; public B(A sender)
{
objA = sender;
//在这里可以用sender调用A的所用公共成员
}
public void f()
{
//在这里可以用objA调用A的所用公共成员
}}
{
public string strName;
private int nAge;
private B b1 = new B(); public A()
{
} public int GetAge()
{
return nAge;
}
private void CreateInstanceOfB()
{
B objB = new B(this);
}
}先创建A的一个实例,然后调用CreateInstanceOfB()方法,创建B的一个实例,B的这个实例就可以访问A的公共成员。
private void miOpenChild_Click(object sender, System.EventArgs e)
{
MDIChildForm frm = new MDIChildForm(this);
frm.MdiParent = this;
frm.Show();
}将子窗体的构造函数改为:
public MDIChild (MDIParent sender)
{
//在这里就可以利用sender访问MDIParent的公共成员
}