我正在处理Windows应用程序表单。我有一个CustomControl(比如MasterControl),我把它放在一个分割面板上,现在我的MasterControl被分成三部分说:
现在我开发了三个自定义控件,并在每个面板中放置一个,例如
现在CustomControl3中的某处我需要访问CustomControl1的公共成员。我为此编写了以下代码:
((MasterControl)this.Parent)._oCustomControl1.PublicMember = this.PublicMember;
上面的代码在我的情况下不起作用。当这行代码在调试模式下执行时,会出现一个消息框,并指出“没有可用于当前位置的代码”
答案 0 :(得分:3)
答案 1 :(得分:2)
如果您的主控件中有一个拆分面板,您应该向上两级找到您的主控件:
((MasterControl)this.Parent.Parent)._oCustomControl1.PublicMember = this.PublicMember;
答案 2 :(得分:0)
我自己找到了答案。我在这里假设,因为它可能会帮助其他人。 确切的代码是:
((MasterControl)this.Parent.Parent.Parent)._oCustomControl1.PublicMember = this.PublicMember;
基本上我的coustomcontrol3位于拆分容器面板内,所以当我写道:
this.Parent
然后它指向它居住的Panel,如果我写的话
this.Parent.Parent
然后它指向上面面板所在的spliter容器,如果我写的话
this.Parent.Parent.Parent
然后它指向此拆分容器所在的控件
我从“Farzin Zaker”的回答中得到了这个想法,所以感谢他的贡献