【发布时间】:2010-07-07 20:04:30
【问题描述】:
我真的不知道给这个问题起什么名字。
假设我有一个 Windows 窗体应用程序。 GUI 非常复杂,需要两个自定义用户控件,“LeftSide”和“Rightside”,每个控件都由各种按钮、标签,甚至可能是另一个自定义用户控件组成。
我的问题:
我在“右侧”控件的范围内。如何从“左侧”控件调用方法?
我正在使用 Visual Studio 2008。
【问题讨论】:
我真的不知道给这个问题起什么名字。
假设我有一个 Windows 窗体应用程序。 GUI 非常复杂,需要两个自定义用户控件,“LeftSide”和“Rightside”,每个控件都由各种按钮、标签,甚至可能是另一个自定义用户控件组成。
我的问题:
我在“右侧”控件的范围内。如何从“左侧”控件调用方法?
我正在使用 Visual Studio 2008。
【问题讨论】:
最简单的解决方案是在RightSide 类型的LeftSide 控件上创建一个属性,然后在表单设计器中将其设置为LeftSide 实例。
然后您可以调用该属性的公共方法。
但是,这是糟糕的设计。
每个用户控件应该是一个独立的块,不需要直接与其他用户控件交互。
你应该考虑重组你的表单。
【讨论】:
((MyParentFormClass)FindForm()).SomeMethod()
与标准 WF 控件完全等效:如何使一个文本框的文本与另一个文本框保持同步:
private void textBox1_TextChanged(object sender, EventArgs e) {
textBox2.Text = textBox1.Text;
}
必要成分:用户控件上的一个事件,当有趣的事情发生时触发。和公共财产。
【讨论】: