我真的不知道该怎么称呼这个问题。以相同的形式从单独的usercontrols调用方法
假设我有一个Windows窗体应用程序。 GUI足够复杂,需要两个自定义用户控件“LeftSide”和“Rightside”,每个控件都由各种按钮,标签以及甚至另一个自定义用户控件组成。
我的问题:
我在“Rightside”控件的范围内。我如何从“Leftside”控件调用一个方法?
我使用Visual Studio 2008
我真的不知道该怎么称呼这个问题。以相同的形式从单独的usercontrols调用方法
假设我有一个Windows窗体应用程序。 GUI足够复杂,需要两个自定义用户控件“LeftSide”和“Rightside”,每个控件都由各种按钮,标签以及甚至另一个自定义用户控件组成。
我的问题:
我在“Rightside”控件的范围内。我如何从“Leftside”控件调用一个方法?
我使用Visual Studio 2008
最简单的办法就是让在RightSide
控制LeftSide
类型的属性,然后将其设置为在表单设计的LeftSide
实例。
然后,您可以调用该属性的公共方法。
但是,这是糟糕的设计。
每个用户控件应该是一个独立的块,不需要直接与其他用户控件交互。
您应该考虑重组您的表单。
完全等效标准WF控制:如何保持一个文本框的文本同步与另一:
private void textBox1_TextChanged(object sender, EventArgs e) {
textBox2.Text = textBox1.Text;
}
必要因素:当一些有趣的事情发生了被解雇的用户控件的事件。和公共财产。
Followup问题:我能否将有问题的方法从“Leftside”移动到父表单本身,使“Leftside”和“Rightside”可以调用该方法? – 2010-07-07 20:20:17
@Raven:是的。使其成为公共方法,然后编写'((MyParentFormClass)FindForm())。SomeMethod()' – SLaks 2010-07-07 21:04:14