2010-07-07 59 views
0

我真的不知道该怎么称呼这个问题。以相同的形式从单独的usercontrols调用方法

假设我有一个Windows窗体应用程序。 GUI足够复杂,需要两个自定义用户控件“LeftSide”和“Rightside”,每个控件都由各种按钮,标签以及甚至另一个自定义用户控件组成。

我的问题:

我在“Rightside”控件的范围内。我如何从“Leftside”控件调用一个方法?

我使用Visual Studio 2008

回答

1

最简单的办法就是让在RightSide控制LeftSide类型的属性,然后将其设置为在表单设计的LeftSide实例。

然后,您可以调用该属性的公共方法。

但是,这是糟糕的设计。
每个用户控件应该是一个独立的块,不需要直接与其他用户控件交互。

您应该考虑重组您的表单。

+0

Followup问题:我能否将有问题的方法从“Leftside”移动到父表单本身,使“Leftside”和“Rightside”可以调用该方法? – 2010-07-07 20:20:17

+0

@Raven:是的。使其成为公共方法,然后编写'((MyParentFormClass)FindForm())。SomeMethod()' – SLaks 2010-07-07 21:04:14

1

完全等效标准WF控制:如何保持一个文本框的文本同步与另一:

private void textBox1_TextChanged(object sender, EventArgs e) { 
     textBox2.Text = textBox1.Text; 
    } 

必要因素:当一些有趣的事情发生了被解雇的用户控件的事件。和公共财产。

相关问题